计算GCD-Python函数返回



我写了一段代码,计算两个数字的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

最新更新