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
这不就是个数学题么……