鱼C论坛

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

求最大公约数,例如gcd(x, y),问题天天都多

[复制链接]
发表于 2014-6-19 00:10:01 | 显示全部楼层 |阅读模式
10鱼币
为什么这样写不行,请各位鱼油指点指点{:7_148:}
def gcd(x, y):
    temp=0
    r=0
    if (y > x > 0):
        temp = x
        x = y
        y = temp        
    else:
        r = x % y
        if (r != 0):
            x = y
            y = r
            continue
        else:
            return x

print(gcd(105,252))        

这是鱼哥的答案,不解‘#’
def gcd(x, y):
    while y:         #为什么是 while y, 而不是while x%y !=0 ??
        t = x % y
        x = y
        y = t

    return x

print(gcd(4,6))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-19 00:10:02 | 显示全部楼层
  1. def gcd(x, y):
  2.     while y:         #看到没有?y = t = x%y
  3.         t = x % y  #while循环的意思是说如果余数t(或者说y)为0的时候返回y
  4.         x = y
  5.         y = t

  6.     return x

  7. print(gcd(4,6))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-20 10:46:01 | 显示全部楼层
建议你看看小甲鱼的脑补链接,里面有告诉你具体思路和伪代码,我相信只要你去看了,肯定不难的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-12 17:42:12 | 显示全部楼层
把 r= 0。改成 r =1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 19:59:24 | 显示全部楼层
Mikel 发表于 2014-6-20 10:46
建议你看看小甲鱼的脑补链接,里面有告诉你具体思路和伪代码,我相信只要你去看了,肯定不难的

脑补链接在哪看啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 08:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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