鱼C论坛

 找回密码
 立即注册
查看: 2551|回复: 2

小甲鱼哥哥等板油们,甲鱼哥哥写的欧几里德的算法看不懂

[复制链接]
发表于 2015-12-3 20:31:45 | 显示全部楼层 |阅读模式

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

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

x
def gcd(x, y):
    while y:
        t = x % y
        x = y
        y = t
    return x
print(gcd(4, 6))
这个是甲鱼哥哥写的。看不懂,希望甲鱼哥哥等给我解释下
我写了一个成功了,可是很麻烦,希望提下建议
#用欧几里得算法求最大公约数
def gcd(x,y):
    if (x > y and x%y == 0) :
        print ('最大公约数为:',y)
    if (x < y and y%x == 0) :
        print ('最大公约数为:',x)
    if (x > y and x%y != 0) :
        a = x%y
        if y%a == 0:
            print('最大公约数为:',a)
        else:
            b=y%a
            a=a%b
            if a == 0:
                print('最大公约数为',b)
            else:
                while a>0 :
                    b = b%a
                    if b == 0:
                        print('最大公约数为',a)
                        break
                    if b > 0:
                        a=a%b
                        if a == 0:
                            print('最大公约数为',b)
                        else:
                            continue
            
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-4 01:43:20 | 显示全部楼层
递归求最大公约数嘛,转成迭代也差不多是你这么写哈~

不妨可以找张纸代入两个数,一步步跟着计算就理解啦~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-4 09:15:14 | 显示全部楼层
哦啦谢谢甲鱼哥哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-18 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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