-->
当前位置:首页 > 题库 > 正文内容

程序填空题:斐波那契递归函数 - C/C++ 函数与抽象

Luz2年前 (2022-09-06)题库654
下述程序中的fib(n)函数使用递归方式计算斐波那契序列的第n项的值,并统计在fib(n)的计算过程中,fib(3)被调用执行的次数。

![image.png](~/5044b99d-60d0-4124-801e-48791ce6d116.png)


1. 请将下述程序补充完整,使用可以正常运行。
2. 思考如何避兔子序列问题的重复计算(提示:备忘录方法)。

c++
#include <stdio.h>

int iCounterFib3 = 0; //用于统计fib(3)被调用的次数
long long fib(int n){
if (n==3)


if (n==1 || n==2)

else

}

int main()
{
int n = 0;
scanf("%d",&n);
long long r = fib(n);
printf("fib(%d) = %lld.\n",n,r);
printf("fib(3) been called for %d times.",iCounterFib3);
return 0;
}


说明:fib(12)应等于144,在递归计算fib(12)的过程中,fib(3)被调用执行55次。

### 感觉不会?  那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)







答案:
第1空:iCounterFib3++;

第2空:return 1;

第3空:return fib(n-1)+fib(n-2);

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。