请阅读以下两段代码:
代码一:
long f1(int num)
{
long f1, f2, f3;
int i;
f1 = f2 = 1;
for (i = 3; i <= num; i++)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
代码二:
long f2(int num)
{
if (num <= 2)
return 1;
return f2(num - 1) + f2(num - 2);
}
请回答:(1)代码一和代码二分别完成什么功能?
(2)若有调用语句f1(5);和f2(6);则分别输出什么?
(3)代码一和代码二哪个效率更好?请分析你得到的结论。
从时间复杂度和空间复杂度的角度来看,代码一的效率要远好于代码二
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE小班面授 名额有限 抢先体验
编辑推荐
最新内容
姓名
手机号