JS 实现菲波那切数列
菲波那契数列指的是这样一个数列:
1,2,3,4,5,6,7,8,9,10
1,1,2,3,5,8,13,21 ,34,55 , 89 , 144 ……
输入 第 n项,输出第n项的值、;
即输入3,输出3;
输入5,输出5;
输入6,输出8;
1、第一种方法,用递归的方法
function fun(num){
if(num<=1){
return num
}
//
return fun(num-1)+fun(num-2)
}
递归的改良版
function fun(num){
var Arr=[0,1]
function calc(n){
if(n<=1){
return Arr[n]
};
if(Arr[n]){
return Arr[n]
}
var data= calc(n-1)+calc(n-2)
//保存住已经算过的值
Arr[n]=data;
return data
}
return calc(num)
}
2、循环计算
function fun(num){
if(num<=1){
return num
};
var one=0;
var two=1;
var three=0;
for(var i=2;i<=num;i++){
three=one+two;
one= two;
two=three;
}
return three
}