Torre de Hanoi problema (recursiva) - Algoritmo de Aprendizaje

problema

una torre antigua, la torre tiene tres asientos A, B, C, A tiene la placa de disco 64, los tamaños de placa, menor es grande, la pequeña, hay una placa 64 que quiere monje de A, mover el bloque C, pero cada vez solamente puede moverse una bandeja, y durante el movimiento, se pueden utilizar el asiento 3 se mantiene por debajo del mercado, en la pequeña tapa, durante el movimiento del asiento B, la salida del paso requerida para mover
Aquí Insertar imagen Descripción
las ideas:
B es una placa con un relé, para mover la unidad C, en la primera placa móvil de a a B, C para el tiempo de tránsito a la última para el tránsito de a a C para mover la placa, está formada de forma recursiva

código:

void Hanoi(int n,char A,char B,char C)
//将A座上的n个盘子,以B为中转,移动到C座
{
if(n==1){//只需移动一个盘子
cout<<A<<"->"<<C<<endl;
//直接将盘子从A移动到C
return ;//递归终止
 }
Hanoi(n-1,A,C,B);//先将n-1个盘子从A移动到B
 cout<<A<<"->"<<C<<endl;
Hanoi(n-1,B,A,C);//最后将n-1个盘子从B移动到C
 return;
 }
int main()
{
 int n;
 cin>>n;//输入盘子数目
 Hanoi(n,'A','B','C');
 return 0;
}
Publicado 79 artículos originales · ganado elogios 133 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_45822638/article/details/105027508
Recomendado
Clasificación