我不太清楚为什么我的递归算法不起作用。我收到以下错误,但我想在我看来我有一个终止点。我知道我忘记了一些简单的事情。
运行时错误:超出最大递归深度
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 方法的变体来生成三元组。但是,它不会生成所有可能的三元组,因此它显然不会生成解决您的问题所需的三元组。
事实上,没有生成所有毕达哥拉斯三元组的通用公式。您需要通过分析找到解决方案或强制解决。
关于python - 为什么我的递归不起作用?警告 : Project Euler spoiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884356/