所以我写了
function gcd(a, b)
if b <> 0
gcd (b, a % b)
else
return a
print gcd (12, 9)
就是这样:
- gcd(12, 9)
- 9 <> 0 表示真
- gcd(9, 12 % 9 = 3)
- 3 <> 0 表示正确
- gcd(3, 9 % 3 = 0)
- 0 <> 0 表示错误
- 返回 a 是 3 但它什么都不返回
你能帮我找出我的错误吗?
最佳答案
我想你需要这一行:
return gcd (b, a % b)
而不仅仅是:
gcd (b, a % b)
这是我的 Python 代码,显示了实际的解决方案:
>>> def gcd(a,b):
... if b != 0:
... return gcd(b, a % b)
... else:
... return a
...
>>> print gcd(12,9)
3
>>>
这是在 Linux 上使用 Python 2.4.3。
关于algorithm - 帮我找出 python 中最大公约数算法中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337807/