K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
以下C++代码意图计算正整数n对应的斐波那契数列第n项,但存在递归终止条件的问题:
int fib(int n) { if(n == 1) return 1; return fib(n-1) + fib(n-2); }
当传入n=0或n≥2的参数时,该函数无法正确运行甚至触发栈溢出。下列修改方案中正确的是:
将if(n ==1) return1; 修改为if(n ==0) return0;
无需修改,该函数本身可以正确运行
保留原有判断,添加if(n ==0) return0;
将递归调用改为fib(n+1)和fib(n+2),缩小问题规模