我正在尝试编写一个简单的python代码来计算两个整数的最大公约数。
def gcd(a,b):
if (b==0):
return a
gcd(b,a%b)
这个简单的代码使用Euclid的算法。问题是它不会返回,除非b为零。 这个bug的来源是什么?
答案 0 :(得分:1)
在递归调用中添加return。
def gcd(a,b):
if (b==0):
return a
return gcd(b,a%b)
答案 1 :(得分:0)
您应该返回函数调用:
def gcd(a,b):
if (b==0):
return a
return gcd(b,a%b)
答案 2 :(得分:0)
您的代码不会返回递归调用的返回值。
def gcd(a,b):
if (b==0):
return a
return gcd(b,a%b)
这应该有用。