|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2007
Città: Castrovillari
Messaggi: 42
|
[JAVA]Classico esempio ricorsivo: Torre di Hanoi
Sto esercitandomi sulla ricorsione multipla in java. Ho scritto un semplice codice basato su ricorsione binaria. A differenza di alcuni codici trovati qua e la sulla rete che sfruttano ricorsioni almeno ternarie.
esempio: (rosetta code) Codice:
public void move(int n, int from, int to, int via) {
if (n == 1) {
System.out.println("Move disk from pole " + from + " to pole " + to);
} else {
move(n - 1, from, via, to);
move(1, from, to, via);
move(n - 1, via, to, from);
}
}
Codice:
static void solve(int n, int from, int to, int via) {
if(n==0) return;
solve(n-1, from, via, to);
System.out.println(n+" "+from+" "+to);
solve(n-1, via, to, from);
}
Un'ulteriore domanda. Come potrei modificare il codice affinche le mosse possibili siano solo spostamenti tra due pali adiacenti e sia illegale spostare un disco dal pole 1 al pole 3 o viceversa? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Rispondo solo all'ultimo punto:
se non puoi spostare dischi dal primo al terzo paletto ti fermi dopo la prima mossa... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:05.


















