为修复以下C++斐波那契递归函数的终止条件缺陷,正确的修改方案是?

sy993641 单选题 共 个子题

以下C++代码意图计算正整数n对应的斐波那契数列第n项,但存在递归终止条件的问题:

int fib(int n) {
    if(n == 1) return 1;
    return fib(n-1) + fib(n-2);
}

当传入n=0或n≥2的参数时,该函数无法正确运行甚至触发栈溢出。下列修改方案中正确的是:

A

将if(n ==1) return1; 修改为if(n ==0) return0;

B

无需修改,该函数本身可以正确运行

C

保留原有判断,添加if(n ==0) return0;

D

将递归调用改为fib(n+1)和fib(n+2),缩小问题规模

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧