let mem = [0, 1, 1];
const fibonacci = (n) => {
if (n < 2) {
return mem[n];
} else if (n == 2) {
console.log(mem.length-1);
console.log((mem[mem.length-1]));
// return (mem[mem.length - 1]);
return (mem[mem.length-1]); // why this return statement return undefined???
}
else {
mem.push(mem[mem.length - 1] + mem[mem.length - 2]);
fibonacci(n - 1);
}
};
console.log(fibonacci(3));
预期输出:2 ..
答案 0 :(得分:0)
如下修改代码:
let mem = [0, 1, 1];
const fibonacci = (n) => {
if (n < 2) {
return mem[n];
} else if (n == 2) {
console.log(mem.length-1);
console.log((mem[mem.length-1]));
// return (mem[mem.length - 1]);
return (mem[mem.length-1]); // why this return statement return undefined???
}
else {
mem.push(mem[mem.length - 1] + mem[mem.length - 2]);
return fibonacci(n - 1);
}
};
console.log(fibonacci(4));
您在return
的{{1}}之前错过了fibonacci(n - 1)
。