模拟卷一递归阅读与完善程序

阅读程序,回答问题(斐波那契递归)。

阅读与完善程序 阅读1 · CSP-S 提高级 初赛 模拟试卷(一)
#include <iostream>
using namespace std;
int f(int n) {
    if (n <= 1) return 1;
    return f(n - 1) + f(n - 2);
}
int main() {
    int a = 0;
    for (int i = 1; i <= 5; i++) a += f(i);
    cout << a << endl;
    return 0;
}
  • (1) 程序运行时输出的结果是______。(4 分)
  • (2) 函数 f(n) 计算斐波那契第 n 项(f(1)=f(2)=1),写出 f(6) 的值______。(4 分)
  • (3) 该程序的时间复杂度约为______。(5 分)
答案解析
(1)a = f(1)+…+f(5) = 1+2+3+5+8 = 19。(2)f(6) = 13。(3)朴素递归含大量重复计算,时间复杂度约 O(2ⁿ)(指数级),可用记忆化优化到 O(n)。

同知识点练习

本题收录于「CSP-S 提高级 初赛 模拟试卷(一)」,共 25 道题,全部提供答案与解析。可进入在线练习系统按知识点随机组卷、自动批改并归集错题。

进入在线练习 查看完整试卷 本类全部题目