q n le nombre de disques,
q a la position de départ, valant 1,
q b, la position d’arrivée, valant 2,
q c, la position intermédiaire utilisable, valant 3,
q au départ, tous les disques sont à la position a,
q une procédure "déplacer" qui déplace un disque d’une position à une autre via une position intermédiaire.
L’algorithme est le suivant :
Procédure déplacer(n,a,b,c :entiers)
Début
Si n>0 Alors
déplacer(n-1,a,c,b)
Afficher "De ",a, "vers ",b
déplacer(n-1,c,b,a);
FinSi
Fin
Soit en Java :
class chap6_hanoi {
static void deplace(int n, int a,int b, int c)
{
if(n>0) {
deplace(n-1,a,c,b);
System.out.println("De "+a+" vers "+b);
deplace(n-1,c,b,a);
}
}
public static void main(String[] args) {
deplace(3,1,2,3);
}
}
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
144
q a la position de départ, valant 1,
q b, la position d’arrivée, valant 2,
q c, la position intermédiaire utilisable, valant 3,
q au départ, tous les disques sont à la position a,
q une procédure "déplacer" qui déplace un disque d’une position à une autre via une position intermédiaire.
L’algorithme est le suivant :
Procédure déplacer(n,a,b,c :entiers)
Début
Si n>0 Alors
déplacer(n-1,a,c,b)
Afficher "De ",a, "vers ",b
déplacer(n-1,c,b,a);
FinSi
Fin
Soit en Java :
class chap6_hanoi {
static void deplace(int n, int a,int b, int c)
{
if(n>0) {
deplace(n-1,a,c,b);
System.out.println("De "+a+" vers "+b);
deplace(n-1,c,b,a);
}
}
public static void main(String[] args) {
deplace(3,1,2,3);
}
}
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
144
