大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足 的数列
数据范围:
要求:空间复杂度 ,时间复杂度 ,本题也有时间复杂度 的解法
一个正整数n
输出一个正整数。
4
3
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。
1
1
2
1
function Fibonacci(n) { // write code here if(n === 0) return 0; if(n === 1) return 1; return Fibonacci(n-1) + Fibonacci(n-2) } module.exports = { Fibonacci : Fibonacci };
function Fibonacci(n) { // write code here let ret = [0, 1]; for(let t = 2; t <= n; t++) { ret[t] = ret[t-2] + ret[t-1]; } return ret[n]; }
// 一对多递归要使用缓存机制来加速 const map = new Map(); function Fibonacci(n) { if (n > 1) { let result = map.get(n); if (result) return result; result = Fibonacci(n - 1) + Fibonacci(n - 2); map.set(n, result); return result; } else { return n; } } module.exports = { Fibonacci: Fibonacci, };
function Fibonacci(n) { // write code here if(n == 0){return 0} else if(n <= 2 ){return 1} else return Fibonacci(n-1)+Fibonacci(n-2); }
function Fibonacci(n) { let arr = [0, 1] for(let i = 2; i <= n; i++){ arr.push(arr[i-1] + arr[i-2]) } return arr[n] } module.exports = { Fibonacci : Fibonacci };
function Fibonacci(n) { // write code here //f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2) 从第三项开始,所在项为前两项之和 var num0 = 0; var num1 = 1; var FArray = [0,1] for(let i=2;i<=39;i++){ FArray.push(FArray[i-1]+FArray[i-2]); } return FArray[n] } module.exports = { Fibonacci : Fibonacci };