1,1,2,3,5,8,13...这种除前两项外,其他项是前两项之和的序列叫做斐波那契数列
关于思路:
首先根据斐波那契数列的性质我们可以想到用递归去实现它,但递归的效率很低,所以我们可以采用非递归的办法,用三个变量来回的转换从而实现斐波那契数列
关于代码:
递归:
int fun(int n)
{
if (n <= 2)
return 1;
else
{
return fun(n - 1)+fun(n - 2);
}
}
非递归:
int fun(int n)
{
long first = 1;
long second = 0;
long third = 0;
if (n < 2)
return 1;
else
{
for (int i = 2; i <= n; i++)
{
third = first + second;
second = first;
first = third;
}
return third;
}
}
结果:
关于总结:
斐波那契数列是个常考的问题,但是往往有时候看不出来它要用斐波那契额数列来考虑。比如说,跳台阶问题,小明一次可以跳上一节台阶,也可以跳上两节台阶,小明从楼下到家假如有N节台阶,总共有多少中跳法.