一、非递归的斐波那契数列
#include<stdio.h>
int main()
{
int n = 0;
int c = 0;
int a;
scanf("&d", &a);
scanf("%d", &n);
int i = 0;
int n1 = 1;
int n2 = 1;
long tmp = 0;
if (n == 1)
printf("%d", 1);
if (n == 2)
printf("%d", 1);
while (n > 2)
{
tmp = n1 + n2;
n1 = n2;
n2 = tmp;
n--;
c++;
if (tmp < a)
{
break;
}
}
printf("%d %d",c, tmp);
return 0;
}
二、递归的斐波那契数列
#include<stdio.h>
long Fib(int n)
{
if (n <= 2)
return 1;
else
return Fib(n - 1) + Fib(n - 2);
}
int main()
{
int n = 0;
scanf("%d", &n);
long ret = Fib(n);
printf("%ld", ret);
return 0;
}
这两个C代码都是关于计算斐波那契数列的,但是实现方式有所不同。
第一个代码实现了一个递归版本的斐波那契数列计算。递归的方式可以很简单地实现斐波那契数列,但是这种方式效率很低,因为会有大量的重复计算。具体来说,这个代