come dice oregon devi vederti il funzionamento dello stack...
ricorsione e stack vanno a braccetto![]()
![]()
ogni volta che chiami la funzione è come se mettessi un mattoncino sullo stack tipo(se chiami 2^5):
pot(2,5) = :2*pot(2,4):
pot(2,4) = :2*pot(2,3):
pot(2,3) = :2*pot(2,2):
pot(2,2) = :2*pot(2,1):
pot(2,1) = :2*pot(2,0):
pot(2,0) = 1 (caso base) e ritornando in alto(o in basso!!) nello stack si viene a ricostruire il valore di pot(2,5) andando a prelevare i "blocchetti" nello stack con i ritorni di funzioni di più "basso livello"...
pot(2,5) è 32. prova a farlo partendo dal basso verso l'alto!!!
non so se mi sono spiegato!
![]()
![]()
![]()

Rispondi quotando