说明:
运算结果:
代码如下:
int count = 0;
int count1 = 0;
int Fib(n)
{
if (n == 3)
{
count++;
}
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int Fib1(n)
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
count1++;
}
return c;
}
int main()
{
int n = 0;
printf("请输入一个数字n:");
scanf("%d", &n);
printf("\n");
int ret = Fib(n);
int ret1 = Fib1(n);
printf("递归法结果为ret= %d\n", ret);//递归法运算结果
printf("递归法运算次数为count= %d\n", count);//递归法运算次数
printf("\n");
printf("迭代法结果为ret1= %d\n", ret1);//迭代法第n个斐波那契数
printf("迭代法运算次数为count1= %d\n", count1);//迭代法运算次数
return 0;
}