下面的代码对于 value(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
else:
gcd(b, a % b)
print gcd(35, 24)
我期望输出为1,但实际输出为None
最佳答案
您缺少return
在你的递归调用中。例如,
gcd(a, b % a)
应该是:
return gcd(a, b % a)
您还遇到一个问题,当 a == b
时,您不会返回任何内容。 。从什么时候开始a == b
两者都不是a < b
或a > b
是真的。你能解决这个问题吗?
关于python - 我编写了一个简单的代码来查找两个数字的 GCD,并尝试了 3 个值 (3, 12)、(35, 24)、(24,12),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58531482/