91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
社旗县| 克拉玛依市| 揭西县| 敦煌市| 库车县| 田东县| 阿合奇县| 西丰县| 昭觉县| 平原县| 高密市| 汕头市| 西乌珠穆沁旗| 木里| 五台县| 安乡县| 泸州市| 谷城县| 建宁县| 屏山县| 六枝特区| 崇礼县| 潞城市| 遂宁市| 菏泽市| 泰兴市| 呼和浩特市| 当阳市| 兖州市| 天峨县| 沭阳县| 咸丰县| 常州市| 和林格尔县| 迭部县| 浏阳市| 鸡泽县| 饶平县| 砚山县| 桦川县| 英德市|