题解 | #斐波那契数列#
斐波那契数列
https://www.nowcoder.com/practice/ee5d403c1172487f8c7915b3c3d924c6
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
// [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
const fib = (n) => {
// 解法1:递归算法, 容易爆栈
// if (n <= 2) return 1;
// return fib(n - 1) + fib(n - 2);
// 解法2: 动态规划
if (n <= 2) return 1;
const num = [1, 1];
for (let i = 2; i < n; i++) {
num.push(num[0] + num[1]);
num.splice(0, 1);
}
return num[1]
}
while(line = await readline()){
console.log(fib(line));
}
}()