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

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

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




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次。






答案:
第1空:iCounterFib3++;

第2空:return 1;

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

发表评论

访客

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