wodeai999 发表于 2021-9-11 20:32:24

求最大公约数

求最大公约数,我想的是从二者最小的开始依次往下试,这个函数哪里有问题哇,运行不了


def gcd(x, y):
    small = min(x,y)
    for i in range(small,0,-1):
      while i:
            if x%i == 0 and y%i == 0:
                return i
      
   

不能懒 发表于 2021-9-11 20:57:02

你要加一个gcd(x, y),最后要调用这个gcd(x, y)

大马强 发表于 2021-9-11 21:30:27

代码没问题呀
def gcd(x, y):
    small = min(x, y)
    for i in range(small, 0, -1):
      while i:
            if x % i == 0 and y % i == 0:
                return i


print(gcd(4, 8))

冬雪雪冬 发表于 2021-9-11 21:40:29

可以去掉while循环

Angelina_Jolie 发表于 2021-9-12 08:22:46

是不是没用调用函数

wodeai999 发表于 2021-9-12 10:00:35

大马强 发表于 2021-9-11 21:30
代码没问题呀

def gcd(x, y):
    small = min(x, y)
    for i in range(small, 0, -1):
      while i:
            if x % i == 0 and y % i == 0:
                return i


print(gcd(6, 8))
这里我换成别的数字就没反应了 用4,8就没问题

wodeai999 发表于 2021-9-12 10:01:10

大马强 发表于 2021-9-11 21:30
代码没问题呀

我这里把 4.8换成别的数字就不行这是为啥..

wodeai999 发表于 2021-9-12 10:03:23

大马强 发表于 2021-9-11 21:30
代码没问题呀

我就仅仅换了数字 结果就不输出了

大马强 发表于 2021-9-12 10:15:54

wodeai999 发表于 2021-9-12 10:03
我就仅仅换了数字 结果就不输出了

def gcd(x, y):
    small = min(x, y)
    for i in range(small, 0, -1):
      if x % i == 0 and y % i == 0:
            return i


print(gcd(6, 8))

大马强 发表于 2021-9-12 10:18:28

wodeai999 发表于 2021-9-12 10:03
我就仅仅换了数字 结果就不输出了

我昨天都没注意看
while i:
            if x%i == 0 and y%i == 0:
你的while是想怎样跳出?
while跳不出,for循环也执行不了 一直死循环

wodeai999 发表于 2021-9-12 10:21:17

def gcd(x, y):
    small = min(x,y)
    for i in range(small,0,-1):
      while i:
            if x % i == 0 and y % i == 0:
                return i

         
print(gcd(6,9))      
   

这是我的代码,为啥我的就运行不了啊,我对比了和你的一样啊

wodeai999 发表于 2021-9-12 10:22:47

大马强 发表于 2021-9-12 10:18
我昨天都没注意看

你的while是想怎样跳出?


看到了谢谢

wodeai999 发表于 2021-9-12 10:25:05

wodeai999 发表于 2021-9-12 10:22
看到了谢谢

兄弟可以加你的微信嘛 我还有其他问题想问问...

大马强 发表于 2021-9-12 10:48:07

wodeai999 发表于 2021-9-12 10:25
兄弟可以加你的微信嘛 我还有其他问题想问问...

我平常用qq 1432659208
页: [1]
查看完整版本: 求最大公约数