两种创建斐波那契数列的方式
下面请看第一种:请注意 这里的 n 代表斐波那契数列的第几位 从 1 开始。
递归方式开始创建
int fibonacci(int n)
{
if( n < 3)
{
return 1;//第一项和第二项为1
}else{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
时间复杂度 O(2 ^ n):
从上图可以看出时间复杂度是树的结点个数。为 2的n 次方 - 1,即为O(2^n);
以循环方式创建
//第二种 以循环的方式进行创建
int fibonacci1(int n)
{
if(n < 3) return 1;
int pre = 1;
int last = 1;
for(int ii = 3; ii < n;ii++)
{
int tmp = last;
last= pre + last;
pre = tmp
}
return last + pre;
}