斐波那契数列(七)
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
var readline=require("readline"); var rl=readline.createInterface({ input:process.stdin, output:process.stdout }) var n=-1,cur_line=0; rl.on('line',function(line){ console.log(Fibonacci(parseInt(line))); }) /** * 递归的时间复杂度太高 */ function Fibonacci(n){ if(n==0){ return 0; } if(n==1){ return 1; } return Fibonacci(n-1)+Fibonacci(n-2); } /** * 改用迭代法 */ function Fibonacci(n){ if(n<1){ return n; } else{ var f0=0,f1=1; var f2; for(var i=2;i<=n;i++){ f2=f0+f1; // f1=f2; // f0=f1; 这里的顺序千万不能错了 /** * 注意!!!应该是 */ f0=f1; f1=f2; } return f2; } } /**if(n==1||n==0){return n}; var arr=[0,1]; for(var i=2;i<=n;i++){ arr.push(arr[arr.length-1]+arr[arr.length-2]) } return arr[n]; **/