题目:
用递归方法编程计算输出Fibonacci数列,同时打印出计算Fibonacci数列每一项时所需的递归调用次数。
**输入格式要求:"%d" 提示信息:“Input n:”
**输出格式要求:“Fib(%d)=%d, count=%d\n”
程序运行示例如下:
Input n:10
Fib(1)=1, count=1
Fib(2)=1, count=3
Fib(3)=2, count=5
Fib(4)=3, count=9
Fib(5)=5, count=15
Fib(6)=8, count=25
Fib(7)=13, count=41
Fib(8)=21, count=67
Fib(9)=34, count=109
Fib(10)=55, count=177
程序:
#include <stdio.h>
#include <stdlib.h>
int fib(int n);
static count=1;
int fib(int n)
{
if (n==1||n==2)
{
count+=2;
//除了n=1&n=2的情况,之后的
//每一次
//调用都会推回fib(1)&fib(2),所以+2
return 1;
}
else
return fib(n-1)+fib(n-2);
}
int main()
{
int n,i;
printf("Input n:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Fib(%d)=%d, count=%d\n",i,fib(i),count);
}
return 0;
}