Variante des tours de Hanoï (disques pairs, impairs)
Bonjour à tous! :D
J'ai un problème avec un exercice. :(
Il s'agit d'une variante des tours de Hanoï où l'on place les disques impairs à gauche, et ceux pairs à droite.
On a donc les disques 1, 3, ..., 2n-1 à gauche et les disques 2,4, 2n à droite. L'objectif est de déplacer tous ces cercles au milieu et dans cet ordre : 1,2, ..., 2n-1, 2n.
Le problème c'est qu'il faut faire ce programme en récursif, et j'ai vraiment du mal à commencer le code. Je trouve ça pas évident... :? Pourriez-vous m'aider ?
Pour le problème des tours de Hanoï classique, j'ai trouvé ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| // in main:
solveHanoi(n, 'A', 'B', 'C');
public static void solveHanoi(int n, char source, char destination, char spare)
{
if (n == 1)
System.out.println("Move disc 1 from " + source + " to " + destination);
else {
solveHanoi(n-1, source, spare, destination);
System.out.println("Move disc " + n + " from " + source + " to " + destination);
solveHanoi(n-1, spare, destination, source);
}
} |
Merci de m'aiguiller ! :)