鱼C论坛

 找回密码
 立即注册
查看: 1245|回复: 4

[已解决]求解释一下这段代码

[复制链接]
发表于 2021-8-11 17:01:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

    return x
    
print(gcd(4, 6))


为什么这里返回2呢
没懂,求大神求助
最佳答案
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
就这样啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 的值
自己算一下 , 可以想明白的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-11 18:06:56 | 显示全部楼层
第11,12,13行我算明白了,但还是不知道为什么最后一行打印2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
就这样啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 22:13:15 | 显示全部楼层
所以打印2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表