yuzhouyichen 发表于 2017-7-31 10:59:54

请教大家,下面函数采用递归通过欧几里得公式算最大公约数,为何不正确

def gcd(x,y):
    if y == 0:
      return x
    else:
      x = min(x,y)
      y = (max(x,y) % min(x,y))
      return gcd(x,y)
   
print(gcd(21,9))

冬雪雪冬 发表于 2017-7-31 11:20:34

把两个赋值语句写成一行
x, y= min(x,y), (max(x,y) % min(x,y))
记住一定要同时赋值,不然就要使用中间临时变量。

yuzhouyichen 发表于 2017-8-1 20:02:47

太感谢了,一叶障目,自己琢磨了半天也没搞懂
页: [1]
查看完整版本: 请教大家,下面函数采用递归通过欧几里得公式算最大公约数,为何不正确