¿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?;
}.