This commit is contained in:
e2hang
2025-07-23 12:52:28 +08:00
parent 6ef3407506
commit cb72c15c85
2 changed files with 92 additions and 0 deletions

92
Stack/appliance/hanoi.cpp Normal file
View File

@@ -0,0 +1,92 @@
#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)
*/

BIN
Stack/appliance/hanoi.exe Normal file

Binary file not shown.