#include<stdio.h>
int Fibonacci(int i)
{
int s = 1,q = 1,count = 3,sum = 1;//s:qq前前的数 q:q前一个数
if(i<=2)
{
return 1;//如果要求的数的个数少于2个,则返回1
}
else
{
while(count<=i)
{
sum=q+s;
s=q; //前前一个数赋给前一个数
q=sum; //把当前的数赋给前一个数
count++;
}
return sum;
}
}
int main()
{
int i = 0;
printf("input numbers:");
scanf("%d",&i);
printf("%d\n",Fibonacci(i));
return 0;
}
下面是递归版本的斐波那契数列,递归:就是自己调用自己。但是,递归是有开销的,当递归的层数变多事,就会非常非常的慢,所以在使用递归时要慎重。
#include<stdio.h>
int Fibonacci(int i)
{
if(i<2)
{
return 1;
}
else
{
return Fibonacci(i-1)+Fibonacci(i-2);
}
}
int main()
{
int i = 0;
printf("input numbers:");
scanf("%d",&i);
printf("%d\n",Fibonacci(i));
return 0;
}