斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用
#include <stdio.h>
int Fib(int n) //递归
{
if(n<0)
printf("n<0,data error\n");
else if(n==1 || n==2)
return 1;
else {
return Fib(n-1) + Fib(n-2);
}
return 0;
}
int Fibonaci_f(int n) //非递归
{
int i=0,result=0;
int a=1,b=1;
if(n<=2)
return 1;
else {
for(i=3;i<=n;i++) {
result = a + b;
a=b;
b=result;
}
}
return result;
}
int main()
{
int n,ret=0,ret2=0;
printf("请输入下标:\n");
scanf("%d",&n);
ret = Fib(n);
ret2=Fibonaci_f(n);
printf("递归:the %d fib is %d\n",n,ret);
printf("非递归:the %d fib is %d\n",n,ret2);
return 0;
}