It consists of a number of disks of different sizes which can slide on any of three rods(pegs). The game starts with the disks arranged in ascending order in the stack on one rod but makes sure the smallest at the top all-time and thus making a conical shape as shown in the below image.

Some rules for game/puzzle to move the whole entire stack to another rod, Rules to move all disks over to 3 towers but you can not place a larger disk on a smaller disk.

## Rules

- Only one disk moves at a time.
- Only the "
**top**" disk can be removed. - In each movement taking the top disk from one tower to top of another tower but you can not place larger on a smaller disk.

With three disks, the game or puzzle can be solved in seven moves. The minimum number of moves required to solve a tower of hanoi is 2

^{n}-1, where n is the number of disks.Below I shared graphical representation for tower of hanoi. so, it is easy for you to understand the mathematical puzzle.

### Tower of Hanoi in C

Here I shared tower of hanoi c program using recursion for mathematical game/puzzle.

## Source Code

#include<stdio.h> void hanoi(int n, char source_rod, char dest_rod, char aux_rod); void main() { int n; printf("Enter Number of Disks:\t"); scanf("\n%d",&n); hanoi(n, 'A', 'C', 'B'); return; } void hanoi(int n, char from_rod, char to_rod, char aux_rod) { if(n<=0) { printf("Wrong Number of disk\n"); } else if (n == 1) { printf("\n Move disk 1 from %c to %c", from_rod, to_rod); return; } else { hanoi(n-1, from_rod, aux_rod, to_rod); printf("\n Move disk %d from %c to %c", n, from_rod, to_rod); hanoi(n-1, aux_rod, to_rod, from_rod); } }

##
**OUTPUT**

Enter Number of Disks: 3

Move disk 1 from A to C

Move disk 2 from A to B

Move disk 1 from C to B

Move disk 3 from A to C

Move disk 1 from B to A

Move disk 2 from B to C

Move disk 1 from A to C

--------------------------------

It's nice codding but tell some important of hanoi

ReplyDelete