Llamada recursiva de funciones del lenguaje c
Tiene principalmente dos funciones, hanoi y mover, donde HANOI representa las placas N-1 antes de moverse, MOVE representa mover la placa N-ésima y los parámetros 'a', 'b' y 'c' representan los nombres de las columnas. En el programa, el primer, segundo y tercer parámetro se confunden. Si el nombre de la variable se cambia a FUENTE, TEMP, DESTINO: quiero entender mejor que estas tres variables representan la columna inicial, la columna de transición y la columna de destino respectivamente. Quizás te preguntes por qué tres variables, es decir, una, dos, tres (origen, temporal, destino). Tome el movimiento de tres placas como ejemplo para ilustrar la idea de este programa: el primer paso es usar DOS (TEMP) para mover las dos primeras placas de uno (origen) a tres (destino), y el segundo paso es use la función MOVER para mover el siguiente plato más grande a tres. El tercer paso es mover los dos tableros en la columna de dos de regreso a uno con la ayuda de tres, lo que se logra a través de la segunda función HANOI en la función HANOI. (Debido a que la placa de los tres pilares ya es la más grande, se puede colocar cualquier placa sobre ella, por lo que se puede imaginar que no existe). Se puede imaginar que en el tercer paso, dos se convierten en la columna inicial, una se convierte en la columna de destino y tres se convierten en una columna de transición. Los cambios en los parámetros de la función Hanno reflejan esto. Para cuando llega a este punto, el tercer tablero se ha movido del uno al tres (esto es solo un análisis, la realidad es que este paso solo se puede realizar después de que se complete la recursividad). En este momento, el problema original de mover tres tableros se convierte en un problema de mover dos tableros, por lo que el número de tableros cuando se vuelve a llamar a Hanoi es N-1. Hasta N==1,
La recursividad es mejor que nada.