Proyecto: torres de Hanói
JavaScript · Unidad 11: Recursión
- Plan completo
- JavaScript
- Proyecto
- 4 ejercicios
En las torres de Hanói hay tres torres y una pila de discos, del más grande abajo al más chico arriba. Hay que pasarla de la torre A a la C, moviendo un disco a la vez y sin poner nunca uno grande sobre uno chico.
El truco es recursivo: para mover n discos, mueves los n - 1 de arriba a la torre que sobra, mueves el disco grande a su lugar y vuelves a poner los n - 1 encima. Con 0 discos, no hay nada que hacer.
function hanoi(n, de, a, otra) {
if (n === 0) {
return;
}
hanoi(n - 1, de, otra, a);
console.log(`De ${de} a ${a}`);
hanoi(n - 1, otra, a, de);
}
hanoi(3, "A", "C", "B");Imprime
De A a C De A a B De C a B De A a C De B a A De B a C De A a C
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Opción múltiple
Para mover una torre de 4 discos, ¿cuántas veces tienes que mover la torre de 3 discos que va arriba del grande?
2. Completa el código
Completa
hanoipara que imprima los 3 movimientos de una torre de 2 discos.3. Escribe el código
Escribe
movimientos(n), que regrese cuántos movimientos hacen falta para mover una torre dendiscos. Usa recursión: con 0 discos son 0 movimientos, y conndiscos son los de mover dos veces la torre den - 1, más uno.4. Escribe el código
Ahora escribe
movCiclo(n)con un ciclo, sin recursión: empieza en 0 movimientos y, por cada disco, la cuenta pasa a ser el doble más uno.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.