请求解析Python递归函数f(13)输出结果为-2的计算过程
递归函数f(13)输出为-2的推导过程
先看给定的Python函数:
def f(a): if a > 10: return f(a-1) - f(a-3) else: return 1 b = 13 c = f(b) print(c)
函数逻辑清晰:
- 当输入的
a大于10时,返回f(a-1) - f(a-3)的结果 - 当
a小于等于10时,直接返回1
我们从基础情况开始,逐步推导到f(13):
- 所有
a ≤ 10的情况:f(10)=1,f(9)=1,f(8)=1……只要a不超过10,返回值都是1。 - 计算
f(11):因为11>10,代入公式得:f(11) = f(10) - f(8) = 1 - 1 = 0 - 计算
f(12):12>10,代入公式得:f(12) = f(11) - f(9) = 0 - 1 = -1 - 计算
f(13):13>10,代入公式得:f(13) = f(12) - f(10) = -1 - 1 = -2
所以最终print(c)会输出-2。
内容的提问来源于stack exchange,提问作者Batocanin
相关产品推荐
相关产品推荐

