用 JavaScript 實現一個 fibonacci 函數,滿足:
- 輸入 n(從0開始計數)
- 輸出第 n 個斐波那契數(斐波那契數列從 1 開始:1,1,2,3,5,8,13,21…)
示例:
- fibonacci(0) => 1
- fibonacci(4) => 5
方法一:
function fibonacci(n) {if (n === 0 || n === 1) return 1;let a = 1, b = 1;for (let i = 2; i <= n; i++) {let temp = a + b;a = b;b = temp;}return b;
}// 測試
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21
方法二:
function fibonacci(count) {function fn(count, curr = 1, next = 1) {if (count === 0) {return curr;} else {return fn(count - 1, next, curr + next);}}return fn(count);
}// 測試
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21
方法三:
function fibonacci(n) {if (n <= 1) return 1;let arr = [1, 1]; // 初始化數組,前兩個斐波那契數是1和1let i = n - 1; // 需要補充的次數while (i > 0) {let a = arr[arr.length - 2];let b = arr[arr.length - 1];arr.push(a + b);i--;}return arr[arr.length - 1];
}// 測試
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21