C++ - 汉诺塔

版权声明:欢迎转载并请注明出处,谢谢~~ https://blog.csdn.net/chimomo/article/details/7716681
/*
 * Created by Chimomo
 */

#include <iostream>

using namespace std;

void print(char A, char C) {
    cout << A << " --> " << C << endl;
}

void hanoi(int n, char A, char B, char C) {
    if (n == 1) {
        print(A, C);
    } else {
        hanoi(n - 1, A, C, B);
        print(A, C);
        hanoi(n - 1, B, A, C);
    }
}

int main() {
    int n;
    cout << "Please input the number of plates in pile A:";
    cin >> n;
    hanoi(n, 'A', 'B', 'C');
    return 0;
}

// Output:
/*
Please input the number of plates in pile A:6
6
A --> B
A --> C
B --> C
A --> B
C --> A
C --> B
A --> B
A --> C
B --> C
B --> A
C --> A
B --> C
A --> B
A --> C
B --> C
A --> B
C --> A
C --> B
A --> B
C --> A
B --> C
B --> A
C --> A
C --> B
A --> B
A --> C
B --> C
A --> B
C --> A
C --> B
A --> B
A --> C
B --> C
B --> A
C --> A
B --> C
A --> B
A --> C
B --> C
B --> A
C --> A
C --> B
A --> B
C --> A
B --> C
B --> A
C --> A
B --> C
A --> B
A --> C
B --> C
A --> B
C --> A
C --> B
A --> B
A --> C
B --> C
B --> A
C --> A
B --> C
A --> B
A --> C
B --> C

*/

猜你喜欢

转载自blog.csdn.net/chimomo/article/details/7716681