鱼C论坛

 找回密码
 立即注册
查看: 1750|回复: 3

[已解决]求最大公约数问题

[复制链接]
发表于 2017-12-23 18:07:13 | 显示全部楼层 |阅读模式

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

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

x
#欧几里得算法求最大公倍数(辗转相除法)
#m/n=x...r  若r!=0: 令m=n, n=r 继续
#若r=0  n 即为所求

def gcd(m,n):
        while 1:
                r=m%n
                if r!=0:
                        continue
                if r==0:
                        return n
                        break
                       
m=int(input('第一个数'))
n=int(input('第二个数'))
print('最大公约数是:',gcd(m ,n))


这个函数是错的,它会进入死循环,但是我确定我的break写对了
求鱼油大神指教
最佳答案
2017-12-23 18:34:33
我想反问一下, if r==0: 你这里何时才为0。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-23 18:34:33 | 显示全部楼层    本楼为最佳答案   
我想反问一下, if r==0: 你这里何时才为0。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-23 18:56:05 | 显示全部楼层
ba21 发表于 2017-12-23 18:34
我想反问一下, if r==0: 你这里何时才为0。

诶呀,最重要的条件忘记输入了
谢谢你呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-23 18:56:49 | 显示全部楼层
正确的代码是

def gcd(m,n):
        while 1:
                r=m%n
                if r!=0:
                        m=n
                        n=r
                        continue
                if r==0:
                        return n
                        break
                       
m=int(input('第一个数'))
n=int(input('第二个数'))
print('最大公约数是:',gcd(m ,n))
                       
       
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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