diff --git a/Stack/appliance/hanoi.cpp b/Stack/appliance/hanoi.cpp new file mode 100644 index 0000000..489bdd0 --- /dev/null +++ b/Stack/appliance/hanoi.cpp @@ -0,0 +1,92 @@ +#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) +*/ diff --git a/Stack/appliance/hanoi.exe b/Stack/appliance/hanoi.exe new file mode 100644 index 0000000..ccfd135 Binary files /dev/null and b/Stack/appliance/hanoi.exe differ