Python 我编写了一个简单的代码来查找两个数字的GCD,并尝试了3个值(3,12),(35,24),(24,12)
下面的代码对值(35,24)返回None。有人能建议为什么它显示None而不是1,而对其他值正常工作吗 我已经尝试了以下解决方案Python 我编写了一个简单的代码来查找两个数字的GCD,并尝试了3个值(3,12),(35,24),(24,12),python,Python,下面的代码对值(35,24)返回None。有人能建议为什么它显示None而不是1,而对其他值正常工作吗 我已经尝试了以下解决方案 def gcd(a, b): if a < b: if b % a == 0: return a else: gcd(a, b % a) elif a > b: if a % b == 0: return b
def gcd(a, b):
if a < b:
if b % a == 0:
return a
else:
gcd(a, b % a)
elif a > b:
if a % b == 0:
return b
else:
gcd(b, a % b)
print gcd(35, 24)
def gcd(a,b):
如果ab:
如果a%b==0:
返回b
其他:
gcd(b,a%b)
打印gcd(35,24)
我希望输出为1,但实际输出为None您在递归调用中缺少了
return
。比如说,
gcd(a, b % a)
应该是:
return gcd(a, b % a)
您还有一个问题,即当a==b
时不返回任何内容。因为当a==b
时a
或a>b
都不是真的。你能解决这个问题吗