#include #include using namespace std; void hanoi(int n, int a, int b, int c){ if(n == 1){ cout << "Move 1 from stack " << a << " to " << b << "(n == 1)" << endl; } if(n > 1){ hanoi(n - 1, a, b, c); cout << "Move " << n << " from stack " << a << " to " << c << endl; hanoi(n - 1, b, c, a); } } int main(){ hanoi(1, 1, 2, 3); cout << endl; hanoi(2, 1, 2, 3); cout << endl; hanoi(3, 1, 2, 3); cout << endl; hanoi(4, 1, 2, 3); cout << endl; hanoi(5, 1, 2, 3); cout << endl; return 0; } /* Move 1 from stack 1 to 2(n == 1) Move 1 from stack 1 to 2(n == 1) Move 2 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 1 from stack 1 to 2(n == 1) Move 2 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 3 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 1 from stack 1 to 2(n == 1) Move 2 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 3 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 4 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 3 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 2 from stack 3 to 2 Move 1 from stack 1 to 2(n == 1) Move 1 from stack 1 to 2(n == 1) Move 2 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 3 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 4 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 3 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 2 from stack 3 to 2 Move 1 from stack 1 to 2(n == 1) Move 5 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) Move 2 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 3 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 2 from stack 3 to 2 Move 1 from stack 1 to 2(n == 1) Move 4 from stack 2 to 1 Move 1 from stack 3 to 1(n == 1) Move 2 from stack 3 to 2 Move 1 from stack 1 to 2(n == 1) Move 3 from stack 3 to 2 Move 1 from stack 1 to 2(n == 1) Move 2 from stack 1 to 3 Move 1 from stack 2 to 3(n == 1) */