Tour_hanoi

Contenu du snippet

simple code for un probleme encien tour de Hanoi, je pense que tout le monde connait l'ennoce de probleme, brave ce code marche sue Linux ou une plateforme windows.

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
void hanoi(int, int, int, int);
long int c=0; // cpt pour le nomber de movement.

int main()
{
  int nd, A, B, C;
  printf ("Enter the number of disks you wonna move: ");
  scanf ("%d", &nd);
  if ( nd == 0 )
  printf (" no hanoi for 0 disk");
  printf ("Enter the intial tag, medium tag, last tag respectively\n");
  scanf ("%d%d%d", &A, &B, &C);
  hanoi (A,B,C,nd);
  printf ("\n%ld\n", c);
  
  return 0;
}

void hanoi (int x, int y, int z, int n)
{

 if ( n == 1 )// cas trivial
 {
        printf (" %d -> %d\n", x, z);
        c++;
        }
 else
 {
  hanoi(x,z,y,n-1);// movement des (n-1) disk de de x vers y z intermediare
  hanoi(x,y,z, 1 );//  movement de dernier disk de x vers z y intermediare
  hanoi(y,x,z,n-1);// movement de (n-1)disk de y vers z x intermediare
  }

 }

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.

Du même auteur (jsk2004)