1と2で始まるフィボナッチシーケンスの最初の5つの数字を印刷したいと思います。ボタンをクリックしたときにこのコードが1,2,3,5,8
と表示されると思いますが、この場合、8である。その後も何度もボタンをクリックすると、常に2
が印刷されます。なぜそれはそのように振る舞うのですか?フィボナッチシーケンスの実装が期待通りに動作しない
/*
Fibonacci sequence is calculated by the formula An = An-1 + An-2
@param prev An-2
@param next An-1
@param n the first n numbers to print
*/
var count = 0; // keeps track of which number we are on
function fibonacci(prev, next, n) {
// Need to subtract 2 or else it will print the first 7 numbers instead of 5
return count++ < n - 2 ? fibonacci(Math.max(prev,next), prev+next, n) + "," : next;
}
document.querySelector('button').addEventListener('click', function() {
console.log(fibonacci(1, 2, 5));
});
<button>Click me</button>
ヒント:ここで、 'count'をリセットしますか? – BeyelerStudios
より正確に '8 ,,,'を表示します – 1983
あなたは文字列に 'prev'を追加していません。 – 1983