柠檬冲冲冲 发表于 2021-8-11 17:01:17

求解释一下这段代码

def gcd(x, y):
    while y:
      t = x % y
      x = y
      y = t

    return x
   
print(gcd(4, 6))


为什么这里返回2呢
没懂,求大神求助

柿子饼同学 发表于 2021-8-11 17:10:11

本帖最后由 柿子饼同学 于 2021-8-11 17:11 编辑

Type "help", "copyright", "credits" or "license()" for more information.
>>> def gcd(x, y):
    while y:
      t = x % y
      x = y
      y = t
      print(t, x, y)
    return x

>>> gcd(4, 6)
4 6 4
2 4 2
0 2 0
2
>>>

可以加一行打印的代码 , 每一行即每次运算之后 t x y 的值
自己算一下 , 可以想明白的

柠檬冲冲冲 发表于 2021-8-11 18:06:56

第11,12,13行我算明白了,但还是不知道为什么最后一行打印2{:10_266:}

3236654291 发表于 2021-8-11 22:12:41

柠檬冲冲冲 发表于 2021-8-11 18:06
第11,12,13行我算明白了,但还是不知道为什么最后一行打印2

第13行 x = 2 ,y = 0
while y 不成立了,所以就return x
x = 2
就这样啊

3236654291 发表于 2021-8-11 22:13:15

所以打印2{:10_277:}
页: [1]
查看完整版本: 求解释一下这段代码