递归算法
#include<stdio.h>
#include <stdlib.h>
int fibonacci(int n)
{
if (n<=0)
{
return 0;
}
if (n==1)
{
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{
int n=0;
int sum=0;
scanf("%d",&n);
sum=fibonacc(n);
printf("%d\n",sum);
system("pause");
return 0;
}
递归算法算比较大的数列时重复调用次数太多效率极低
迭代算法
int fibonacc(int n)
{
int i=0;
int a=1;
int b=1;
int c=1;
while ((n>2)&&(i<n-2))
{
c=a+b;
a=b;
b=c;
i++;
}
return c;
}
int main()
{
int n=0;
int sum=0;
scanf("%d",&n);
sum=fibonacc(n);
printf("%d\n",sum);
system("pause");
return 0;
}