Rimettendo in ordine ho ritrovato alcuni miei vecchi source, e anche questo che feci a suo tempo quando imparavo a programmare
La torre di hanoi, l'esempio più carino dove l'implementazione ricorsiva è molto più immediata di quella iterativa, mi stupisco che nessuno l'abbia mai postato prima
[ot]
[/ot]
Per aumentare il numero dei dischi basta aggiungere il primo argomento (intero) al move() nel main
La torre di hanoi, l'esempio più carino dove l'implementazione ricorsiva è molto più immediata di quella iterativa, mi stupisco che nessuno l'abbia mai postato prima
[ot]
Codice:
#include <iostream>
using namespace std;
void move( int nD=3, int pInit=1, int pTemp=2, int pFinal=3 ) {
if ( nD == 1 )
cout<<pInit<<" -> "<<pFinal<<endl;
else {
move( nD-1, pInit, pFinal, pTemp );
move( 1 , pInit, pTemp, pFinal );
move( nD-1, pTemp, pInit, pFinal );
}
}
int main() {
move();
cin.get();
return 0;
}
Per aumentare il numero dei dischi basta aggiungere il primo argomento (intero) al move() nel main