我写了一个代码来计算两个数字的GCD。 (24,12)的gcd是12.函数compute_gcd
计算GCD并返回它,它将被打印在main函数中。但是,当我将其返回到main函数时,输出为none
,当我在compute_gcd
函数本身中打印时,输出为12。
返回GCD时我哪里出错?
def compute_gcd(a,b):
if(b==0):
return a # Prints 12 if I replace with print a
else:
compute_gcd(b,a%b)
def main():
a=24
b=12
print compute_gcd(a,b) # Prints none
main()
答案 0 :(得分:4)
您忘记在return
分支中添加else
。这有效:
def compute_gcd(a,b):
if b == 0:
return a
else:
return compute_gcd(b,a%b)
def main():
a=24
b=12
print compute_gcd(a,b) # Prints 12
main()
答案 1 :(得分:0)
试试这个......你必须在return
声明
else
def compute_gcd(a,b):
if(b==0):
return a
else:
return compute_gcd(b,a%b)
def main():
a = 24
b = 12
print(compute_gcd(a,b))
main()
答案 2 :(得分:-2)
你的其他条件没有回报因此输出为无。如果您将其更改为
else:
return compute_gcd(b,a%b)
你会得到12
。