1.10 Aplicación de la recursividad: Torres de Hanoi
Las torres de Hanoi es un juego oriental que consta de tres columnas llamadas "origen", "destino" y "auxiliar" y una serie de discos de distintos tamaños. El juego consiste en pasar los discos de "destino" a "origen" y dejarlos de mayor a menor. Las reglas son:
- Sólo se puede mover un disco a la vez
- Se pueden usar as tres columnas
- Nunca debe quedar un disco grande sobre uno pequeño
Usando la recursividad:
- Si sólo hay un disco (caso base), entonces se lleva directamente a la varilla "origen".
- Si hay que llevar n>1 (caso general) discos desde "origen" a "destino" entonces:
- Se llevan n-1 discos de la varilla "origen" a la "auxiliar" - Se lleva un solo disco (el que queda) de "origen" a "auxiliar" - Se traen los n-1 discos de "auxiliar" a "destino"
- import java.util.Scanner;
- public class Hanoi{
- int n:
- n = sc.nextInt(); //Guardamos el numero de disco introducido por el usuario
- Hanoi(n, 1, 2, 3); // 1: origen 2: auxiliar 3: destino
- }
- //Método torres de Hanoi recursivo
- public static void Hanoi(int n, int origen, int auxiliar, int destino){
- if(n==0){
- }else{
- Hanoi(n-1,origen, destino, auxiliar);
- Hanoi(n-1, origen, destino, auxiliar);
- }
- }
- }
No hay comentarios:
Publicar un comentario