Friday, March 16, 2012

Tower of Hanoi

Tower of Hanoi


Example of The Solution of Tower of Hanoi Problem

More about Tower of Hanoi here.
Program below simulate the solver of the legendary Tower of Hanoi.
/*
   title: towerOfHanoi
   author: aeriqusyairi
   date: Jan28 2012
*/
#include<stdio.h>
#include<math.h>

void hanoi( int, char, char, char );

int main(){
   int disk, moves;
   
   printf("Enter the number of disk you want to play with:");
   scanf("%d", &disk);
   
   moves = pow( 2, disk ) - 1;
   
   printf("\nThe number of moves required is = %d\n", moves );
   hanoi(disk, 'A', 'C', 'B' );
   
   system("pause");
   return 0;
}

void hanoi(int x, char from, char to, char temp){
   if( x == 1 )
      printf("Move disk from %c to %c\n", from, to );
   else{
      hanoi(x - 1, from, temp, to );
      printf("Move disk from %c to %c\n", from, to );
      hanoi( x - 1, temp, to, from );     
   }
}

No comments:

Post a Comment