Ich möchte die ersten 5 Zahlen in der Fibonacci-Folge beginnend mit 1 und 2 drucken. Ich erwarte, dass dieser Code 1,2,3,5,8
druckt, wenn ich auf den Knopf klicke, aber irgendwie druckt er nur die letzte Zahl ist in diesem Fall 8. Und wenn ich danach mehrmals auf die Schaltfläche klicke, wird immer 2
gedruckt. Warum verhält es sich so?Fibonacci-Sequenzimplementierung verhält sich nicht wie erwartet
/*
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>
hinweis: wo setzen sie 'count' zurück? – BeyelerStudios
Genauer gesagt druckt es '8 ,,,' – 1983
Sie fügen Ihrer Zeichenfolge nicht 'prev' hinzu. – 1983