estaba leyendo elocuente JavaScript y me encontré con este ejemplo para el rompecabezas:¿Una explicación más clara para la recursividad y el flujo de ejecución en JavaScript?
consideran este rompecabezas: Partiendo de el número 1 y en repetidas ocasiones, ya sea la adición de 5 o multiplicar por 3, una cantidad infinita de los nuevos números pueden ser producidos. ¿Cómo escribiría una función que, dado un número, intente para encontrar una secuencia de adiciones y multiplicaciones que producen ese número ?
Aquí está el código para la solución:
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));
Podría alguien aclarar cómo encontrar DoD se ejecutan si no tiene un valor para los parámetros start y la meta? ¿Cómo sucedió la recursión?
Vea también [¿Cómo funciona esta recursión?] (Http://stackoverflow.com/q/15712230/1048572) y [Recursión de Javascript de Eloquent Javascript] (http://stackoverflow.com/q/26205376/1048572) – Bergi