/**
*@author:pxx
*@description:递归方式求解斐波那契
* 从第三项开始,每一项等于前两项的和 已知第一项和第二项为1
* 时间复杂度O(n2)
*@date:
*/
public static int solution1(int index){
if(index<2){
return 1;
}else{
return solution1(index-1)+solution1(index-2);
}
}
/**
*@author:pxx
*@description:迭代法求解斐波那契 迭代前两项的数据
* 时间复杂度O(n)
*@date:
*/
public static int solution2(int index){
//保存前两项数据 用于迭代
int a=1;
int b=1;
//保存当前项数据
int current=0;
if(index==0){
return 1;
}
else if (index==1){
return 1;
}
for (int i = 2; i <=index ; i++)
{
//当前项目等于前两项之后,并迭代前两项的值
current=a+b;
a=b;
b=current;
}
return current;
}