为什么我的嵌套如果被忽略?

2024-09-26 17:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我用欧几里德算法求最大公分母的代码。你知道吗

def gcdIter(a, b):

    if a > b:
        if a%b == 0:
            return b
        r = a%b
        a = b
        return gcdIter(a, r)
    elif a < b:
        if b%a == 0:
            return a
        r = b%a
        a = b
        return gcdIter(a, r)

gcdIter(12, 2)

编辑:将(elif b<;a)更改为(elif a<;b)


Tags: 代码lt算法编辑returnifdefelif
3条回答

你的elif部分永远也达不到。如果a>;b第一个If本身满足。将elif条件更改为b>;a。但是对于您的输入gcd(12,2),它应该可以工作。你知道吗

我想你的elif应该是这样的:

elif a < b:

因为a > bb < a本质上是一回事。。。你知道吗

当gcdIter返回一个值时,您需要打印它。你知道吗

print gcdIter(12, 2)

你也可以这样计算gcd

def gcd(a,b):
    if b==0:
        return a
    return gcd(b,a%b)

相关问题 更多 >

    热门问题