unsigned long fibonacci1(unsigned m)
{
int i;
unsigned long pol,num[2]={1,1};
if(i>2)
{
for(i=2;i<m;i++)
{
pol=num[0]+num[1];
num[0]=num[1];
num[1]=pol;
}
return pol;
}
else
{
return 1;
}
}
有两个小问题,改正如下:
unsigned long fibonacci1(unsigned m)
{
int i;
unsigned long pol, num[2] = { 1,1 };
if (m >= 2) //将i>2换成m>= 2
{
for (i = 2; i <=m; i++) //将i<m换成i<=m
{
pol = num[0] + num[1];
num[0] = num[1];
num[1] = pol;
}
return pol;
}
else
{
return 1;
}
}
参考:https://blog.csdn.net/liyuanbhu/article/details/51703018
uint64_t Fibonacci(unsigned char n)
{
if( n == 0 ) return 0;
if( n == 1 ) return 1;
uint64_t fn, fnn = 1, fnnn = 0;
for(int i = 2; i <= n; i ++)
{
fn = fnn + fnnn;
fnn = fn;
fnnn = fnn;
}
return fn;
}