Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 042 fois - Téléchargée 32 fois
// 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 ! }
27 nov. 2006 à 17:34
29 juin 2003 à 13:47
28 juin 2003 à 18:31
if (nombre==1) // Le problème de base !
{
cout<<depart<< " -> " <<arrive<<endl;
}
28 juin 2003 à 16:34
Une fonction recursive c'est une fonction qui s'appelle elle meme lors de sa déclaration (dans ce programe, c'est hanoi qui est recursive).
Au debut, on appelle la fonction avec le premier paramettre egal a "nombre".
Dans la fonction, on rapelle cette meme fonction avec nombre-1, qui elle meme va se rapeller avec nombre-1 (donc ca fera nombre-2) et ainsi de suite...
Par exemple, pour 20 disques, la fonction s'appellera 20 fois.
28 juin 2003 à 11:08
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.