Ich war Eloquent JavaScript zu lesen und ich auf dieses Beispiel für das Puzzle kam:Eine klarere Erklärung für Rekursion und Ablauf der Ausführung in JavaScript?
dieses Rätsel vor: von die Nummer 1 und wiederholt Durch das Starten entweder Zugabe von 5 oder 3 multipliziert wird, eine unendliche Menge an Neue Nummern können produziert werden. Wie würden Sie eine Funktion schreiben, die, gegeben eine Zahl, versucht, eine Folge von Hinzufügungen und Multiplikationen zu finden, die diese Zahl produzieren?
Hier ist der Code für die Lösung:
function findSequence(goal) {
function find(start, history) {
if (start == goal)
return history;
else if (start > goal)
return null;
else
return find(start + 5, "(" + history + " + 5)") ||
find(start * 3, "(" + history + " * 3)");
}
return find(1, "1");
}
print(findSequence(24));
Könnte jemand aufklären, wie dod findet ausgeführt werden soll, wenn es keinen Wert für die Argumente beginnen und Ziel hat? Wie ist die Rekursion passiert?
Siehe auch [Wie funktioniert diese Rekursion?] (Http://stackoverflow.com/q/15712230/1048572) und [Javascript Rekursion von Eloquent Javascript] (http://stackoverflow.com/q/26205376/1048572) – Bergi