Tour de hanoi avec les pile (stack) langage C

Résolu/Fermé
ghostdz - 3 mars 2012 à 00:11
hamzastar7 Messages postés 6 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 1 septembre 2013 - 3 janv. 2013 à 23:10
J'ai besoin d'aide pour résoudre cet travaille

Il s'agit d'un jeu de réflexion dont voici le principe. Des anneaux de diamètres
différents sont empilés sur un poteau. Un anneau peut être empilé sur un autre seulement
si il a un diamètre inférieur à celui de l'anneau sur lequel il repose.

Le but du jeu est de déplacer n anneaux initialement empilés sur un seul poteau vers un
autre en respectant les règles du jeu et en n'utilisant qu'un seul poteau intermédiaire.

Ecrire un programme qui permette d'afficher les étapes nécessaires pour le déplacement
de n anneaux d'un poteau A vers un poteau C en passant par le poteau intermédiaire B en
utilisant les piles (stack).

6 réponses

bon la solution sans l utilsation les piles est


#include<stdio.h>
#include<conio.h>
#include<math.h>
void hanoi(int x, char from,char to,char aux)
{

if(x==1)
{
printf("Move Disk From %c to %c\n",from,to);
}
else
{
hanoi(x-1,from,aux,to);
printf("Move Disk From %c to %c\n",from,to);
hanoi(x-1,aux,to,from);
}

}
void main()
{
int disk;
int moves;

printf("Enter the number of disks you want to play with:");
scanf("%d",&disk);
moves=pow(2,disk)-1;
printf("\nThe No of moves required is=%d \n",moves);
hanoi(disk,'A','C','B');
getch();
}

comment utilse les piles dans la solution?
7