[C] explication Tour Hanoï récursive
Tony
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
il y a quelqu'un qui peut m'expliquer le principe de la tour d'hanoï ?
voici le programme , et merci !
#include<stdio.h>
#include<conio.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,'1','2','3',&occur);
printf("%ld déplacements\n",occur);
getch();
}
void tourhanoi(int n,char depart,char base,
char intermediaire,long unsigned int *occur){
if(n>0){
++*occur;printf("lalal %d",n);
tourhanoi(n-1,depart,intermediaire,base,occur);
printf("hah");printf("%c -> %c\n",depart,base);
tourhanoi(n-1,intermediaire,base,depart,occur);
}
}
il y a quelqu'un qui peut m'expliquer le principe de la tour d'hanoï ?
voici le programme , et merci !
#include<stdio.h>
#include<conio.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,'1','2','3',&occur);
printf("%ld déplacements\n",occur);
getch();
}
void tourhanoi(int n,char depart,char base,
char intermediaire,long unsigned int *occur){
if(n>0){
++*occur;printf("lalal %d",n);
tourhanoi(n-1,depart,intermediaire,base,occur);
printf("hah");printf("%c -> %c\n",depart,base);
tourhanoi(n-1,intermediaire,base,depart,occur);
}
}
A voir également:
- [C] explication Tour Hanoï récursive
- Brancher une tour sur un pc portable ✓ - Forum PC portable
- Chambre 1408 explication fin ✓ - Forum Cinéma / Télé
- Paris multiple 2/6 explication - Forum Excel
- Explication pour une curieuse ✓ - Forum Mozilla Firefox
- Black butler saison 2 explication ✓ - Forum Cinéma / Télé
4 réponses
Le but est de deplacer une pile de disque (qui vont du plus grand au plus petit) d'un endroit a un autre.
Voici une animation pour t'aider a comprendre:
https://upload.wikimedia.org/wikipedia/commons/6/60/Tower_of_Hanoi_4.gif
On deplace donc les disques au fur et a mesure pour depiler la pile initiale, afin d'empiler une autre pile ailleurs. (bien entendu, un plus grand disque ne peut pas aller sur un plus petit disque).
Voici une animation pour t'aider a comprendre:
https://upload.wikimedia.org/wikipedia/commons/6/60/Tower_of_Hanoi_4.gif
On deplace donc les disques au fur et a mesure pour depiler la pile initiale, afin d'empiler une autre pile ailleurs. (bien entendu, un plus grand disque ne peut pas aller sur un plus petit disque).