深耕专业教研,探索前沿技术
信息技术来源:浙江省新阵地教育联盟2026届第二次联考技术试题卷

第 10 题

答案与解析

本题解析

参考答案

C

解题思路

函数以n≤2为递归出口,否则用更小的参数n-1、n-2调用自身,并将两个返回值相加,构成二分支递归。

程序分析

def f(n):
    if n <= 2:
        return n
    else:
        return f(n-1) + f(n-2)

调用f(5)时,先计算f(4),再计算f(3)。统计调用次数时,每进入一次函数就计1次,包括到达出口的调用;参数相同但分别发生的调用也要分别计数。

设T(n)为执行f(n)产生的全部调用次数,包含当前调用。由出口条件得T(1)=T(2)=1;当n>2时,两个子调用产生的次数分别为T(n-1)、T(n-2),再加上当前调用,得T(n)=1+T(n-1)+T(n-2)。
依次计算:
T(3)=1+1+1=3;
T(4)=1+3+1=5;
T(5)=1+5+3=9。