请帮我看看这段代码,它应该计算两个数字(a, b)
之间最大的共同划分。我遇到的问题是该程序不会按预期返回c
,而是返回None
。但是当我使用print
语句时,它会打印出c
的值。
这是我的代码:
def gcd(a, b):
if a == 0:
return b
elif b == 0:
return a
elif a > b:
big, small = a, b
else:
big, small = b, a
c = big % small
if c == 0:
print(small)
return small
gcd(small, c)
print(gcd(1071, 462))
谢谢你们。
答案 0 :(得分:1)
当没有遇到明确的None
并且函数体结束时,Python隐式返回return
。
在你的情况下,如果它通过所有其他情况,它只是命中:
gcd(small, c)
return None # you haven't put that in explicitly but that's how Python processes it
所以你可能只需要将最后一行更改为:
return gcd(small, c)