python函数中的加法??


def f(n,m):
    if n == 0:
        return m
    elif m == 0:
        return n
    else:
        if n >= m:
            return f(m,n-m) + 1
        else:
            return f(n,m-n) + 2
print(f(3,4))

想问一下这个输出的结果为什么会是7啊,这是怎么运算出来的捏!倒数第二第四行的加法又是怎么运算的呀,😵

第一次f(3,4)
执行
return f(n,m-n) + 2,即f(3,1) + 2
f(3,1),执行return f(m,n-m) + 1 = f(1,2) + 1
f(1,2),执行return f(n,m-n) + 2 = f(1,1) + 2
f(1,1),执行return f(m,n-m) + 1 = f(1,0) + 1
f(1,0),满足m==0,执行return n,返回 1
所以最终f(3,4)的结果是2+1+2+1+1 = 7

f(3,4) = f(3,1) + 2
= f(1,2) + 1+ 2
= f(1, 1) + 2 + 1+ 2
= f(1, 0) + 1+ 2+ 1 +2
= 1+1+2+1+3 = 7

这不就是个数学题么……