斐波那契数列のJavaScript实现
1. 递归
function Fibonacci(n){
if(n < 2) return n;
return Fibonacci(n-1) + Fibonacci(n-2);
}
2. 尾递归
function Fibonacci(n)
{
return tailRecursive(n, 0, 1);
function tailRecursive(n, i, j){
if(n === 0) return i;
if(n === 1) return j;
if(n > 1) return tailRecursive(n - 1, j, i+j);
}
}
3. 循环迭代
function Fibonacci(n){
// 迭代/循环
var pre = 0;
var nxt = 1;
if(n === 0) return pre;
while(n-- > 1){
nxt = pre + nxt;
pre = nxt - pre;
}
return nxt;
}