天天看點

漢諾塔代碼實作c++

#include <iostream>

using namespace std;

int move(int n, char a, char b, char c) {

    if (n == 0) {

        return 0;

    }

    move(n - 1, a, c, b);//第一步 将 n-1個盤子從a移到b c是工具柱

    cout << a << "-->" << c << '\n';//将a柱子下最大的盤子移動到c柱

    move(n - 1, b, a, c);//将b柱 n-1 個盤子移動到 c  a是工具

}

int main() {

    int n=0;

    cout << "請輸入漢諾塔盤子的個數:";

    cin >> n;

    char a, b, c;

    a = 'A';

    b = 'B';

    c = 'C';

    move(n, a, b, c);//a為起始,b為工具,c為目标,移動n個圓盤

    return 0;

}

#include <iostream>

using namespace std;
int move(int n, char a, char b, char c) {
    if (n == 0) {
        return 0;
    }

    move(n - 1, a, c, b);//第一步 将 n-1個盤子從a移到b c是工具柱
    cout << a << "-->" << c << '\n';//将a柱子下最大的盤子移動到c柱
    move(n - 1, b, a, c);//将b柱 n-1 個盤子移動到 c  a是工具

}

int main() {
    int n=0;
    cout << "請輸入漢諾塔盤子的個數:";
    cin >> n;
    char a, b, c;
    a = 'A';
    b = 'B';
    c = 'C';
    move(n, a, b, c);//a為起始,b為工具,c為目标,移動n個圓盤
    return 0;
}
           

繼續閱讀