Red de conocimiento informático - Conocimiento sistemático - El problema de la Torre de Hanoi: Hay 4 pilares. Si el número de torres cambia a cuatro, a, b, c, d, ahora es necesario mover los n discos de a a d, y el movimiento manda. permanecer sin cambios.

El problema de la Torre de Hanoi: Hay 4 pilares. Si el número de torres cambia a cuatro, a, b, c, d, ahora es necesario mover los n discos de a a d, y el movimiento manda. permanecer sin cambios.

Lenguaje C:

#include?lt;iostreamgt;

usando?namespace?std;

void?move(char? a,?char?b){

coutlt;lt;alt;lt;"-----gt;"lt;lt;blt;lt;endl;

void ?hannuo(int?n, ?char?a, ?char?b, ?char?c?, ?char?d){

if(1==n){

mover(a,?d);

else?if(2?==?n){

mover(a,?b);

mover(a,?d);

mover(b,?d);

else{

hannuo(n-2,?a,?c ,?d,?b);

mover(a,c);

mover(a,d);

mover(c,d);

hannuo(n-2,?b,?c,?a,?d);

int?main(){

char?a= 'a',?b='b',?c='c',?d?=?'d';

int?i;

coutlt;lt;" Por favor ingrese el número de placas";

while?(cingt;gt;i){

hannuo(i,?a,?b,?c,?d);

return?0;

Información ampliada:

Ideas para resolver problemas:

Por ejemplo, si hay cuatro pilares a, b , cyd, necesitamos mover el enésimo disco en la columna a a la columna de destino (columna d). Primero divida el piso superior en dos partes. Mueva la parte superior a la columna b y la parte inferior a la columna c. mueva el enésimo disco a la columna objetivo, luego mueva la placa del pilar c al pilar objetivo y luego mueva la placa del pilar b al pilar objetivo.

Detalles: Cuando la parte superior se mueve a la columna b, su columna de variables intermedias tiene dos opciones. Cuando la parte inferior se mueve a la columna c, solo tiene una columna de variable intermedia (porque una columna ya está ocupada por la parte superior). Lo mismo ocurre cuando b y c también se mueven a la columna de destino.