通过递归的方式来处理
递归的方法:
- 首先去找临界值,无需计算就能得到的值
- 找这一次和上一次的关系
- 假设当前函数已经可以使用,调用自身计算上一次
//零界值为第一项和第二项的值都为1
function Fibonacci(n) {
if(n == 1 || n == 2) {
return 1;
}else{
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
alert(Fibonacci(3));//第3项的值
//零界值为前1项的和为1,前2项的和为2
//sumFibonacci(n) = sumFibonacci(n-1) + Fibonacci(n)
function sumFibonacci(n) {
switch(n){
case 1:
return 1;
break;
case 2:
return 2;
break;
default:
return sumFibonacci(n-1) + Fibonacci(n);//调用上面的函数
break;
}
}
alert(sumFibonacci(4))