Here you will get C program for tower of hanoi problem using recursion.

The Tower of Hanoi (also called the Tower of Brahma or Lucas’ Tower and sometimes pluralized) is a mathematical game or puzzle. It consists of three rods, and a number of disks of different sizes which can slide onto any rod. The puzzle starts with the disks in a neat stack in ascending order of size on one rod, the smallest at the top, thus making a conical shape as shown in below image.

The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:

- Only one disk can be moved at a time.
- Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack i.e. a disk can only be moved if it is the uppermost disk on a stack.
- No disk may be placed on top of a smaller disk.

With three disks, the puzzle can be solved in seven moves. The minimum number of moves required to solve a Tower of Hanoi puzzle is 2^{n}-1, where n is the number of disks.

**Animated solution of the Tower of Hanoi Puzzle for T(4,3)**

C Program using recursion is given below which finds solution for Tower of Hanoi Problem.

## C Program for Tower of Hanoi Problem Using Recursion

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include<stdio.h> void TOH(int,char,char,char); void main() { int n; printf("How many plates?"); scanf("%d",&n); TOH(n,'A','B','C'); } void TOH(int n,char x,char y,char z) { if(n>0) { TOH(n-1,x,z,y); printf("\n%c -> %c",x,y); TOH(n-1,z,y,x); } } |

**Output**

*How many plates?3*

*A -> B*

*A -> C*

*B -> C*

*A -> B*

*C -> A*

*C -> B*

*A -> B*

**Source:** https://en.wikipedia.org/wiki/Tower_of_Hanoi

Comment below if you have doubts or found anything incorrect related to above program for tower of hanoi in C.