使用计算GCD - Python函数返回

时间:2016-07-31 06:35:59

标签: python python-2.7 return return-value greatest-common-divisor

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

3 个答案:

答案 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