Skip to main content

Tower of Hanoi

       
/**
    Module Name: Tower of Hanoi

    Description: This Program is done using Recursion

    Author:  Tauqirul Haque
   
*/



void towerOfHanio(int, char, char, char); 

int main()
{
    clrscr();
    int disk ;
    printf("Enter The Number of Disk :  ");
    scanf("%d",&disk);
   
    int move = (int)(pow(2,disk)-1);
    printf("\nTotal Number of Moves are #  %d \n",move);

       
    towerOfHanio(disk, 'A','C','B');  // a= source, c = destination , b = temp
   
    printf("\n");
    return 0;
   
}

void towerOfHanio(int disk, char source, char destination, char temp)
{
    if(disk == 1)
    {
        printf("Move :  %c -> %c",source,destination);
    }
    else
    {
        towerOfHanio(disk-1, source, temp, destination);
        printf("\nMove :  %c -> %c \n",source,destination);
        towerOfHanio(disk-1, temp, destination, source);
    }
}

Comments

Popular posts from this blog

Singly Linked List

/**     Program Name: Singly Linked List     Description: This Program is for Implemeting Singly Linked List     Author:  Tauqirul Haque         */ struct Linklist {     int item;     struct Linklist *next; }; typedef struct Linklist node; void insertAtBeginning(node **); void createAppendNode(node **); void insertInMiddle(node **); void deleteNode(node **); void displayNode(node **); void countNode(node **);  void searchElement(node **); void reverse(node **); void main() {     node *head = NULL;     int choice = 0;     while(choice != 9)     {             printf("\n\t\t\t1. Add Node At The Beginning ");     printf("\n\t\t\t2. Insert Element in the Middle ");     printf("\n\t\t\t3. Append New Node "); ...

FINDING FACTORIAL OF A NUMBER

/**     Program Name: FINDING FACTORIAL     Description: This Program finds a Factorial of a Given Number     Author:  Tauqirul Haque         */ long fact(long n); void main() {     long n;     printf("Enter N : ");     scanf("%d",&n);         if(n < 0)   //if its a neg number then changing the sign     {         n = -n;     }         printf("The fact of %ld  =  %ld \n\n",n,fact(n)); } long fact(long n) {     if(n==0 || n==1)     {         return 1;     }     else     {         return n*fact(n-1);     } }

BUBBLE SORT

/**     Program Name: BUBBLE SORT     Description: This Program sorts a Given Array in Ascending Order     Author:  Tauqirul Haque         */ #define SIZE 10 void bubbleSort(int data[SIZE]); void displayElement(int data[SIZE]); void main() {     int data[SIZE] = { 45,34,66,89,45,34,76,22,79, 12};         printf("\nThe Original Array Before Sorting ... ");     displayElement(data);         printf("\nArray After Sorting ... ");     bubbleSort(data);     displayElement(data);     } void displayElement(int data[SIZE]) {     int i;     for(i=0; i     {         printf("\nData[%d]  =  %d",i,data[i]);     }     printf("\n"); } void ...