第一种方法:递归
function fibonacci(n){ if (n==0){ return 0; }else if (n==1){ return 1; } return fibonacci(n-1)+fibonacci(n-2); }
网上现有的方法是:
function fibonacci(n){ if (n==1||n==2){ return 1; } return fibonacci(n-1)+fibonacci(n-2); }
这样做有个不足之处,n取值必须大于0.
第二种方法:循环,非递归
function fibonacci(n){ var a = 0, b = 1, num = 0; if (n==0){ return 0; }else if(n==1){ return 1; } for(var i=1;i<n;i++){ num = a + b; a = b; b = num; } return num; }
网上现有方法不含有判断部分,n取值需大于1.