Salut,
Voici en C, mais la fonction tu peux l'utiliser aussi en C++
#include<stdio.h>
void tourhanoi(int n,char depart,char base,
char intermediaire,long unsigned int *occur);
int main()
{
int n,i;
long unsigned int occur=0;
printf("Entrez le nombre de disques : ");
scanf("%d",&n);
tourhanoi(n,'A','B','C',&occur);
printf("%ld déplacements\n",occur);
return 0;
}
void tourhanoi(int n,char depart,char base,
char intermediaire,long unsigned int *occur){
if(n>0){
++*occur;
tourhanoi(n-1,depart,intermediaire,base,occur);
printf("%c -> %c\n",depart,base);
tourhanoi(n-1,intermediaire,base,depart,occur);
}
}Résultat Tu peux le tester ici
http://pagesperso-orange.fr/jeux.lulu/html/hanoi/hanoi1.htm
lami20j@debian:~/trash/c_exercices$ gcc tourhanoi.c
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 2
A -> C
A -> B
C -> B
3 déplacements
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 3
A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B
7 déplacements
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 4
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
A -> B
C -> B
C -> A
B -> A
C -> B
A -> C
A -> B
C -> B
15 déplacements
106485010510997108