Red de conocimiento informático - Conocimiento informático - Programa la siguiente pregunta en lenguaje C. Gracias Dios.

Programa la siguiente pregunta en lenguaje C. Gracias Dios.

/* Hannota hannota.c */

#include

/*

Solución:

Si la columna está etiquetada como ABC, es necesario moverla de A a C. Si solo hay una placa, muévala directamente a C. Cuando haya dos placas, use B como columna auxiliar.

Si hay más de 2 placas, es muy sencillo cubrir la tercera placa y las siguientes, y procesar dos placas a la vez, es decir: A-gt; B-gt; C son tres pasos, y la parte cubierta es en realidad el procesamiento recursivo que ingresa al programa.

De hecho, si hay n placas, el número de veces necesarias para completar el movimiento es 2^n-1;

Entonces, cuando el número de placas es 64, entonces el El número de veces requerido para 64 es: 2^63=8446744073709551615 es 5.05390248594782e 16 años,

Es decir, aproximadamente 5000 siglos. Si no tienes idea de este número, simplemente asume que se mueve una placa cada vez. segundo, que son aproximadamente 585 mil millones de años

*/

void HanNoTa (int n, char A, char B, char C)

{.

if ( n==1 )

{

printf ( "Disco d movido de c a c\n", n, A, C );

}

else

{

HanNoTa( n-1, A, C, B); >printf( "Disco d movido de c a c\n", n, A, C

HanNoTa( n-1, B, A, C );

}

int main()

{

int n;

printf( "Por favor, introduzca el número de juegos: " );

scanf( "d",amp;n);

HanNoTa(n,'A','B','C');

devuelve 0;

p>

}