当输入 $6$ 时,下列程序的输出结果为( )。
#include <iostream>
using namespace std;
int f(int n) {
if (n <= 3) return n;
return f(n - 1) + f(n - 2) + 2 * f(n - 3);
}
int main() {
int n;
cin >> n;
cout << f(n) << endl;
return 0;
}模拟程序执行过程,逐行跟踪变量变化,特别关注循环边界和递归终止条件。
模拟执行时注意:① 循环变量的起始和终止值;② 递归的边界条件;③ 数据类型转换和精度问题。
【考点】递归|动态规划|整数运算
GESP 八级《算法与程序设计》模块,递归与递推关系。命题人卡住的是"不会展开递归式计算"——八级要求理解递归调用栈的展开过程,但考场里 80% 考生直接写代码跑,不会手算验证,遇到复杂递归式就懵了。