C++ recursive program to solve Tower of Hanoi puzzle.
Sample Input:
In: 4 Out: Move disk 1 from tower 0 to tower 2 Move disk 2 from tower 0 to tower 1 Move disk 1 from tower 2 to tower 1 Move disk 3 from tower 0 to tower 2 Move disk 1 from tower 1 to tower 0 Move disk 2 from tower 1 to tower 2 Move disk 1 from tower 0 to tower 2 Move disk 4 from tower 0 to tower 1 Move disk 1 from tower 2 to tower 1 Move disk 2 from tower 2 to tower 0 Move disk 1 from tower 1 to tower 0 Move disk 3 from tower 2 to tower 1 Move disk 1 from tower 0 to tower 2 Move disk 2 from tower 0 to tower 1 Move disk 1 from tower 2 to tower 1
Code:
// ? 2017 TheFlyingKeyboard and released under MIT License // theflyingkeyboard.net #include <iostream> using namespace std; void solveHanoi(int discNumber, int A, int B, int C); int main() { int discNumber; cout << "Hanoi solver recursive algorithm" << endl; cout << "TheFlyingKeyboard.net 2017" << endl; cout << "Enter number of discs: "; cin >> discNumber; solveHanoi(discNumber, 0, 1, 2); int tmp; cin >> tmp; return 0; } void solveHanoi(int discNumber, int A, int B, int C) { if (discNumber == 0) { return; } solveHanoi(discNumber - 1, A, C, B); cout << "Move disk " << discNumber << " from tower " << A << " to tower " << B << endl; solveHanoi(discNumber - 1, C, B, A); }
C++ Recursive Hanoi Solver