Cita:
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: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);
}
}
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);
}
}
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)
Pero aqui deberia ser A --> C.if(n==1){
cout<<A<<"-->"<<B<<endl;
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.