Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Torres de Hanoi

Estas en el tema de Torres de Hanoi en el foro de C/C++ en Foros del Web. Saludos, intento comprender el funcionamiento del siguiente ejercicio que encontre en internet sobre las Torres de Hanoi para n discos, utilizando el Tema Recursividad. Cita: ...
  #1 (permalink)  
Antiguo 27/12/2008, 14:44
 
Fecha de Ingreso: julio-2008
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Torres de Hanoi

Saludos, intento comprender el funcionamiento del siguiente ejercicio que encontre en internet sobre las Torres de Hanoi para n discos, utilizando el Tema Recursividad.

Cita:
void hanoi(int n,char com, char aux, char fin);

void main(void){

char com='A';
char aux='B';
char fin='C';
int n;

cout<<"Numero de discos: ";
cin>>n;
fflush(stdin);

cout<<"Los movimientos a realizar son: "<<endl;

hanoi(n,com,aux,fin);
}

void hanoi(int n,char com, char aux, char fin){

if(n==1){
cout<<com<<"->"<<fin<<endl;
}
else{
hanoi(n-1,com,fin,aux);
cout<<com<<"->"<<fin<<endl;
hanoi(n-1,aux,com,fin);

}
}
No he podido seguir el proceso por medio del cual se generan los resultados, por ejemplo, para n = 3 se tiene que las soluciones son:

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C

Y me parece el desarrollo incial es el siguiente:

hanoi(3,A,B,C);
else
hanoi( 2,A,C,B)
else
hanoi(1,A,C,B)
if(n==1){
cout<<A<<"-->"<<B<<endl;
Pero aqui deberia ser A --> C.

Agradeceria si alguien explicara la manera en que se desarrollan las soluciones, al menos las primeras de manera de entender las siguientes.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 27/12/2008, 18:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Torres de Hanoi

Código:
#include <stdio.h>

void hanoi(int n,char from,char aux,char to) {
if (n==0) {return;}
hanoi(n-1,from,to,aux);
printf("\nMove disk %d from %c to %c",n,from,to);
hanoi(n-1,aux,from,to);
}

void main(void) {
hanoi(3,'a','b','c');
}
  #3 (permalink)  
Antiguo 27/12/2008, 22:22
 
Fecha de Ingreso: julio-2008
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Torres de Hanoi

Gracias razpeitia, con este nuevo codigo logre hacer el desarrollo del programa....¡¡¡¡

Inclusive ahora comprendo como desarrollar por el que originalmente pregunte.

Este ultimo codigo me resulto menos confuso.

Gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.