我写了一段代码,计算两个数字的GCD。(24,12)的gcd为12。函数compute_gcd
计算GCD并返回它,它被打印在主函数中。但是,当我将其返回到主函数时,输出为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()
您忘记在else
分支中放入一个return
。这项工作:
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()
试试这个。。。您必须在else
语句中执行return
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()
您的else条件没有返回,因此输出为none。如果你把它改成
else:
return compute_gcd(b,a%b)
你会得到12
。