Tower of Hanoi

Stato
Discussione chiusa ad ulteriori risposte.

orakool

Utente Electrum
30 Giugno 2007
323
6
2
118
Rimettendo in ordine ho ritrovato alcuni miei vecchi source, e anche questo che feci a suo tempo quando imparavo a programmare :D

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 :D

[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;
}
[/ot]

Per aumentare il numero dei dischi basta aggiungere il primo argomento (intero) al move() nel main
 
Stato
Discussione chiusa ad ulteriori risposte.