TOWER OF HONAI



Referred From :  PRITHVIRAJ JAIN




#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int n,moves;
void tower(int n,int a,int b,int c)
{
    if(n==0)
    {
        printf("NO DISK TO MOVE \n");
        return;
    }
    else if(n==1)
    {
        printf("MOVE DISK %d FROM %c TO %c \n",n,a,c);
        return;
    }
    else
    {
        tower(n-1,a,c,b);
        printf("MOVE DISK %d FROM %c TO %c \n",n,a,c);
        tower(n-1,b,a,c);
    }
}
void main()
{
    printf("ENTER THE NUMBER OF DISKS :\n");
    scanf("%d",&n);
    tower(n,'A','B','C');
    moves=(pow(2,n))-1;
    printf("THE TOTAL NUMBER OF MOVES = %d\n",moves);
}




Referred From :  GURUPRASAD M S

#include<stdio.h>
#include<math.h>
int tower(int n,char s,char ax,char d)
{
if(n==1)
{
printf("\n MOVE %d DISK FROM %c TO %c\n ",n,s,d);
return 0 ;
}
tower(n-1,s,d,ax);
printf("\n MOVE %d DISK FROM %c TO %c\n ",n,s,d);
tower(n-1,ax,s,d);
}
void main()
{
int n;
printf("Enter the number of Discs\n");
scanf("%d",&n);
tower(n,'A','B','C');
printf("Total number of moves are: %f \n",(pow(2,n)-1));
}