斐波那契数列:1,1,2,3,5,8,13,21,34.........
要求数列的第n项
解法一:利用两个变量,具体做法如下:
int Fbnq(int n)
{
int a = 1;
int b = 1;
if (n <= 0)
{
return 0;
}
if (n == 1||n == 2)
{
return 1;
}
for (int i = 1; i < n / 2; i++)
{
a = a + b;
b = a + b;
}
if (n % 2 == 1)
{
return a;
}
else
{
return b;
}
}
解法二:利用一个数组
int Fbnq(int n)
{
int fbnq[100];
if (n <= 0)
{
return 0;
}
if (n == 1 || n == 2)
{
return 1;
}
fbnq[1] = 1;
fbnq[2] = 1;
for (int i = 3; i < n+1; i++)
{
fbnq[i] = fbnq[i - 1] + fbnq[i - 2];
}
return fbnq[n];
}
解法三:递归
int Fbnq(int n)
{
if (n <= 1)
return n;
else
return Fbnq(n - 1) + Fbnq(n - 2);
}