残酷月光 发表于 2020-6-17 09:26:05

第十七课:函数:Python的乐高积木

编写一个函数,利用欧几里得算法求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
def gcd(x,y):
    while y:
      t = x % y
      x = y
      y = t
    return x
感觉这个答案给的不太对哦。比如(4,3),最大公约数应该是1 啊,,按程序怎么是3呢?

qiuyouzhi 发表于 2020-6-17 09:28:46

我这里给的就是1啊?
你截个图呗

Twilight6 发表于 2020-6-17 09:32:38

同楼上运行结果

Hoiste 发表于 2020-6-17 10:40:01

能返回3的情况大概率是把return放进while循环体里了,第一步执行到return直接退出函数,所以没有具备循环功能,看看是不是return的缩进位置错误。

残酷月光 发表于 2020-6-18 08:37:01

Hoiste 发表于 2020-6-17 10:40
能返回3的情况大概率是把return放进while循环体里了,第一步执行到return直接退出函数,所以没有具备循环功 ...

好了好了{:10_277:}
页: [1]
查看完整版本: 第十七课:函数:Python的乐高积木