Ne ho capito il funzionamento ma..non la logica..l'esercizio è quello classico, dei 3 dischi...posto il codice:
#include <stdio.h>
void hanoi (int, int, int, int);
main()
{
int number;
printf("Inserisci il numero dei dischi hanoi: ");
scanf("%d", &number);
hanoi(number, 1, 3, 2);
return 0;
}
void hanoi(int c, int inizio, int fine, int temporaneo){
if(c == 1){
printf("%d ----> %d", inizio, fine);
return;
}
hanoi(c-1, inizio, temporaneo, fine);
printf("\n%d ----> %d\n", inizio, fine);
hanoi(c-1, temporaneo, fine, inizio);
}
Dunque, appena avviato ed inserito il numero, vengono immediatamente passati tramite gli argomento hanoi, che ne richiama la definizione, i valori all'interno della funzione stessa, nella sequenza indicata prima nell'argomento, e poi nella relativa definizione. quindi ottengo:
void hanoi (int 3, 1, 3, 2){
if...ecc..
ecco qui, la ricorsione non mi è chiara, cioè, come fa a cambiare le sequenza, via via che si avvicina al caso base? intendo:
hanoi(3 - 1, inizio, temporaneo, fine);
hanoi(2 - 1,?????????????);
hanoi81 - 1, ????????????);
printf("??????????)....
insomma non mi è chiara ancora sta ricorsione...