我不太清楚为什么我的递归算法不起作用我得到了下面的错误,但是,我想在我看来,我有一个终点。我知道我忘记了一些简单的事情。
RuntimeError:超出最大递归深度

def triplet(n):
    a = (2*n) +1
    b = (2*n)*(n+1)
    c = (2*n)*(n+1) +1

    if a+b+c == 1000:
        return a*b*c
    elif a+b+c > 1000:
        return 'no triplet found'
    else:
        return triplet(n+1)

print triplet(1)

最佳答案

您使用的是euclid生成三元组的方法的变体。但是,它并不能产生所有可能的三元组,因此它显然不能产生解决问题所需的三元组。
事实上,并没有通用的公式来生成所有的毕达哥拉斯三元组。你要么分析性地找到解决办法要么粗暴地强迫它。

10-08 13:34