93 lines
2.2 KiB
C++
93 lines
2.2 KiB
C++
#include <iostream>
|
|
#include <stack>
|
|
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)
|
|
*/
|