|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2009
Messaggi: 54
|
[c] torri di hanoi (ricorsione)
allora vi inserisco la soluzione nello spoiler /* hanoi.c : file sorgente di un programma che scrive una soluzione
del problema delle "torri di Hanoi". Per quanto riguarda l'introduzione al suddetto problema e la spiegazione della soluzione seguente, si rimanda al testo dell'esercizio 5.39 del libro "C corso completo di programmazione" di Deitel & Deitel. */ #include<stdio.h> /* Definizione dei prototipi delle funzioni */ void muovi_dischi(int n, int a, int b, int c); /* ### */ int main() { int n, a, b, c; do { printf("Numero n dei dischi che vuoi considerare? (n>0)\n"); scanf("%d", &n); } while(n <= 0); muovi_dischi(n, 1, 3, 2); } /* ### */ void muovi_dischi(n, a, b, c) int n, a, b, c; { /* Questa funzione (ricorsiva) descrive le mosse da fare per poter trasferire n dischi dal piolo a al piolo c, usando eventualmente b come piolo per gli spostamenti intermedi. Ovviamente, questi spostamenti vengono fatti tenendo conto del vincolo espresso nel problema delle "torri di Hanoi": ciascun disco non puo' mai essere poggiato su un disco piu' piccolo. */ if(n == 1) { printf("Muovi un disco dal piolo %d al piolo %d\n", a, c); } else { muovi_dischi(n-1, a, c, b); printf("Muovi un disco dal piolo %d al piolo %d\n", a, c); muovi_dischi(n-1, b, a, c); } } vorrei capire come funziona la ricorsione non riesco a capirla per bene ... e perchè nel ciclo while mette <= 0????? grazie a tutti Ultima modifica di ziomerio : 24-01-2012 alle 15:43. Motivo: levo lo spoiler magari è piu comodo cosi |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
dov'è??
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:09.




















