中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
龙岩市| 鸡东县| 探索| 大田县| 黑龙江省| 龙岩市| 买车| 钟山县| 营口市| 潞西市| 镇平县| 公主岭市| 临朐县| 民权县| 桂林市| 阿坝| 唐河县| 成都市| 贵州省| 津南区| 恭城| 武安市| 大同县| 尚志市| 新干县| 长春市| 金平| 南部县| 偃师市| 舟山市| 图木舒克市| 荥经县| 来宾市| 无极县| 麻栗坡县| 鹤峰县| 大城县| 郁南县| 二手房| 崇阳县| 日喀则市|