Fibonacci数求解

//已知 f(n) = f(n-1) + f(n-2) ,f(0) = 0 ,f(1) = 1。 求 f(n)

#include<stdio.h>
long fb_iter(int n);
long fb_array[100]={0};
int main()
{
printf("start caculate Fibonacci\n");
printf("Fibonacci is %d\n",fb_iter(10));

}
/*递归方式*/
/*
long fb_iter(int n)
{
if (0==n) return 0;
if (1==n) return 1;
return (fb_iter(n-1)+fb_iter(n-2));

}
*/
//典型的用空间换取时间
/*
long fb_iter(int n)
{
int i=0;
fb_array[0]=0;
fb_array[1]=1;

for(i=2;i<=n;i++)
fb_array[i]=fb_array[i-1]+fb_array[i-2];
return fb_array[n];

}*/
//最优方案,时间和空间都得到了节省


long fb_iter(int n)
{
int i=0;
long add1=1;
long add0=0;
long sum=0;


for(i=2;i<n;i++)
{
sum=add1+add0;
add0=add1;
add1=sum;
printf("sum %d\n",sum);
}
return (add1+add0);

}

 

posted @ 2013-05-09 16:53  yurius  阅读(171)  评论(0)    收藏  举报