xxxxxxxxxx
/*Intitial || 1 || 2 || 3 Goal || 1 || 2 || 3
---- || || || || ----
------ || || || || ------
-------- || || || || ----------
Rule 1: One Disc Can Be Moved At A Time
RUle 2: At An Instance No Bigger Disc Should Be Above Smaller Disc
*/
// Tower of hanoi using recursion
#include <iostream>
using namespace std;
void TOH(int n, int A, int B, int C){
if(n>0){
TOH(n-1,A,C,B);
cout << A << " , " << C << endl;
TOH(n-1,B,A,C);
}
}
/*
n = Number Of Disc
A = Source
B = Helper
C = Destination
*/
int main() {
TOH(3,1,2,3);
return 0;
}
xxxxxxxxxx
// C++ recursive function to
// solve tower of hanoi puzzle
#include <bits/stdc++.h>
using namespace std;
void towerOfHanoi(int n, char from_rod,
char to_rod, char aux_rod)
{
if (n == 0)
{
return;
}
towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
cout << "Move disk " << n << " from rod " << from_rod <<
" to rod " << to_rod << endl;
towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
}
// Driver code
int main()
{
int n = 4; // Number of disks
towerOfHanoi(n, 'A', 'C', 'B'); // A, B and C are names of rods
return 0;
}
// This is code is contributed by rathbhupendra