- // Auteur : Amokrane Chentir
- // Programme de résolution du problème des TOURS DE HANOI !
- // Algo utilisé : fonction recursive
-
-
- #include <iostream>
-
- using std::cout;
- using std::cin;
- using std::endl;
-
- void hanoi(int ,int ,int ,int);
-
- int main()
- {
- int a,b,c,d,fin;
-
-
- cout<<"Programme de r\202solution du probl\212me des tours de hanoi !"<<endl;
- cout<<endl;
- cout<<"Combien y'a t'ils de disques \205 d\202placer ?"<<endl;
- cin>>a;
-
- cout<<"Il ya 3 piquets : 1-2-3 !"<<endl;
-
- cout<<"Quel est le piquet ou les disques sont initialement plac\202s ?"<<endl;
- cin>>b;
-
- cout<<"Quel est le piquet ou cette pile de disque va \202tre d\202plac\202 ?"<<endl;
- cin>>c;
-
- cout<<"Quel est le piquet servant de lieu de transfert temporaire ?"<<endl;
- cin>>d;
-
- hanoi(a,b,c,d);
- cout<<endl;
- cout<<"Tapez une touche pour sortir !"<<endl; // Au lieu de mettre un Sleep
- cin>>fin; // Une manière élegante de sortir d'un programme
- return 0;
- }
-
- void hanoi(int nombre,int depart,int arrive,int transfert)
- {
- if (nombre==1) // Le problème de base !
- {
- cout<<depart<< " -> " <<arrive<<endl;
-
- }
-
- else // Tout le truc est la !!!
- {
- hanoi(nombre - 1,depart,transfert,arrive);
- cout<<depart<<' '<<"->"<<' '<<arrive<<endl;
- hanoi(nombre - 1,transfert,arrive,depart);
-
- } // La fonction recursive quoi !
-
- }
-
// Auteur : Amokrane Chentir
// Programme de résolution du problème des TOURS DE HANOI !
// Algo utilisé : fonction recursive
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void hanoi(int ,int ,int ,int);
int main()
{
int a,b,c,d,fin;
cout<<"Programme de r\202solution du probl\212me des tours de hanoi !"<<endl;
cout<<endl;
cout<<"Combien y'a t'ils de disques \205 d\202placer ?"<<endl;
cin>>a;
cout<<"Il ya 3 piquets : 1-2-3 !"<<endl;
cout<<"Quel est le piquet ou les disques sont initialement plac\202s ?"<<endl;
cin>>b;
cout<<"Quel est le piquet ou cette pile de disque va \202tre d\202plac\202 ?"<<endl;
cin>>c;
cout<<"Quel est le piquet servant de lieu de transfert temporaire ?"<<endl;
cin>>d;
hanoi(a,b,c,d);
cout<<endl;
cout<<"Tapez une touche pour sortir !"<<endl; // Au lieu de mettre un Sleep
cin>>fin; // Une manière élegante de sortir d'un programme
return 0;
}
void hanoi(int nombre,int depart,int arrive,int transfert)
{
if (nombre==1) // Le problème de base !
{
cout<<depart<< " -> " <<arrive<<endl;
}
else // Tout le truc est la !!!
{
hanoi(nombre - 1,depart,transfert,arrive);
cout<<depart<<' '<<"->"<<' '<<arrive<<endl;
hanoi(nombre - 1,transfert,arrive,depart);
} // La fonction recursive quoi !
}