::Tower of Hanoi ::
The Tower of Hanoi (also called the Tower of Brahma or Lucas' Tower,[1] and sometimes pluralized) is amathematical 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
.
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 2n - 1, where n is the number of disks.
#include <iostream>
using namespace std;
void towers(int, char, char, char);
int main()
{
int num;
cout<<"Enter the number of disks : "<<endl;
cin>>num;
cout<<"The sequence of moves of the Tower of Hanoi are :\n"<<endl;
towers(num, 'A', 'C', 'B');
return 0;
}
void towers(int num, char A, char B, char C)
{
if (num == 1)
{
cout<<"\nMove disk "<<num<<" from peg "<< A<<" to peg "<< B<<endl;
return ;
}
towers(num - 1, A, C, B);
cout<<"Move disk "<< num <<" from peg "<< A<<" to peg "<<B;
towers(num - 1, C, B, A);
}
