鱼C论坛

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

第17讲动动手1 有疑惑,求解答谢谢!

[复制链接]
发表于 2018-5-6 15:21:14 | 显示全部楼层 |阅读模式

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

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

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

    return x
   
print(gcd(4, 6))

求最大公约数得问题,
1. while y得含义是什么?
2. t是x 除y的余数,那么x = y 的目的是什么? y = t的目的又是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-6 16:12:10 From FishC Mobile | 显示全部楼层
1 只要y不为0就一直执行循环
2 百度 辗转相除法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-6 18:44:42 | 显示全部楼层
辗转相除法呀,这个是求最大公约数的。
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 09:37:23 | 显示全部楼层
while循环的条件是,只要为true永远循环,把y作为条件是因为,y最后会等于0,让while循环停止。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-10 08:52:56 From FishC Mobile | 显示全部楼层
你大概没点开这题课后题那里的链接吧,那里有辗转相除法的具体解释
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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