Red de conocimiento informático - Conocimiento sistemático - ¿Cómo debería escribir un programa en C para el problema de Hannuka? Y por favor explique por qué.

¿Cómo debería escribir un programa en C para el problema de Hannuka? Y por favor explique por qué.

En realidad, hay tres pasos principales:

Primero, mueva n-1 discos de a a c a b.

En segundo lugar, mueva el disco inferior de a a c.

En tercer lugar, dado que n-1 discos están todos en b, simplemente repita los pasos anteriores como si b fuera a.

#include

void?move(int?n,char?a,char?b,char?c)

{

if(n==1)

printf("\t%c->%c\n" ,a,c);//cuando n es solo 1 movimiento directamente desde a para c

else

{

{

move(n-1,a,c,b); n-1st debe moverse de a a b mediante c

printf("\t%c->%c\n",a,c);

move (n -1,b,a,c);//n-1 se mueve después de que b se convierte en el disco de inicio, b se mueve de a a c

}

}

int?main()

{

int?n;

printf("Ingrese el número de bloques que se moverán:");

scanf("%d",&n);

move(n,'a','b','c');

regresar?;

}.