亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++漢諾塔實現代碼怎么寫

c++
小億
133
2023-11-29 18:33:29
欄目: 編程語言

以下是C++中漢諾塔問題的實現代碼:

#include <iostream>

void hanoi(int n, char source, char auxiliary, char destination) {
    if (n == 1) {
        std::cout << "Move disk 1 from " << source << " to " << destination << std::endl;
        return;
    }
    
    hanoi(n - 1, source, destination, auxiliary);
    std::cout << "Move disk " << n << " from " << source << " to " << destination << std::endl;
    hanoi(n - 1, auxiliary, source, destination);
}

int main() {
    int numDisks;
    std::cout << "Enter the number of disks: ";
    std::cin >> numDisks;
    
    hanoi(numDisks, 'A', 'B', 'C');
    
    return 0;
}

這個代碼示例中,hanoi函數用于遞歸地解決漢諾塔問題。它接受四個參數:n表示要移動的盤子數量,source表示源柱子,auxiliary表示輔助柱子,destination表示目標柱子。當n等于1時,即只有一個盤子需要移動時,直接將該盤子從源柱子移動到目標柱子。否則,先將n-1個盤子從源柱子移動到輔助柱子上,然后將第n個盤子從源柱子移動到目標柱子上,最后再將n-1個盤子從輔助柱子移動到目標柱子上。

main函數中,用戶需要輸入要移動的盤子數量,然后調用hanoi函數來解決問題。

0
禹州市| 龙海市| 托克托县| 合阳县| 蓬安县| 岳阳市| 蒙山县| 永新县| 张家口市| 汽车| 靖安县| 且末县| 福鼎市| 建水县| 抚顺市| 佛山市| 阳原县| 南汇区| 宜春市| 尉犁县| 孝义市| 通州市| 洪湖市| 桂林市| 沙湾县| 达日县| 屏边| 太谷县| 沁阳市| 钟祥市| 大足县| 临湘市| 安远县| 石景山区| 华池县| 崇阳县| 闽清县| 察隅县| 四平市| 云南省| 图木舒克市|