miusa 发表于 2020-3-9 13:26:54

第17讲,求最大公约数,求答案解析

编写函数,求两个参数的最大公约数,参考答案为:
def gcd(x, y):
    while y:
      t = x % y
      x = y
      y = t

    return x

while y后三行不懂,求指点。

qiuyouzhi 发表于 2020-3-9 13:33:06

把他们打印出来:
def gcd(x, y):
    while y:
      t = x % y
      print(t)
      x = y
      print(x)
      y = t
      print(y)

    return x
现在随便给两个参数试试

miusa 发表于 2020-3-9 13:56:21

qiuyouzhi 发表于 2020-3-9 13:33
把他们打印出来:

现在随便给两个参数试试

请原谅萌新的脑子有点转不过来,跑出来盯着看了十分钟,还是没有恍然大悟的感觉……

qiuyouzhi 发表于 2020-3-9 13:59:24

miusa 发表于 2020-3-9 13:56
请原谅萌新的脑子有点转不过来,跑出来盯着看了十分钟,还是没有恍然大悟的感觉……

>>> x = 6
>>> y = 3
>>> t = x % y
>>> t
0
>>> x= y
>>> x
3
>>> y = t
>>> y
0
>>> # 这时y为0,直接返回x
现在呢?

miusa 发表于 2020-3-10 14:37:38

qiuyouzhi 发表于 2020-3-9 13:59
现在呢?

emmmmm……感谢大神,代码逻辑我懂了,原来我不懂的是欧几里得法……滚去学习去了

funkcat 发表于 2020-3-26 23:32:13

本帖最后由 funkcat 于 2020-3-26 23:41 编辑

qiuyouzhi 发表于 2020-3-9 13:59
现在呢?

如果X<Y,这段代码就会返回Y,是不是老师写错了



老师没错, 是我理解错了~~~
页: [1]
查看完整版本: 第17讲,求最大公约数,求答案解析