#include<stdio.h>
/*
long long fib(int x)
{
if(x<=0) return 0;
if(x==1) return 1;
return fib(x-1)+fib(x-2);
}
longer than 10min*/
unsigned fib(unsigned x) //为何long long 100就溢出
{
int result[2]={0,1};
if(x<2) return result[x];
long long fibOne=1;
long long fibTwo=0;
long long fibN =0;
for(unsigned int i=2;i<=x;i++)
{
fibN=fibOne+fibTwo;
fibTwo=fibOne;
fibOne=fibN; //change fibOne to fib now
}
return fibN;
}
int main()
{
unsigned x;
while (scanf("%u",&x)!=EOF) printf("%u\n",fib(x));
}
2015年8月13日 O(n)fibonacci
最新推荐文章于 2021-12-14 16:46:26 发布