Dubbio torri di hanoi

di il
1 risposte

Dubbio torri di hanoi

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...

1 Risposte

  • Re: Dubbio torri di hanoi

    Nessuno sa darmi un aiuto? sono un po nel pallone...non capisco come faccia a cambiare i valori nelle variabili...insomma, sin ora, ogni variabile scambiata, portava con se il valore contenuto...se non si assegnava diversamente..qua non capisco il meccanismo...
Devi accedere o registrarti per scrivere nel forum
1 risposte