遞歸——漢諾塔

文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡(jiǎn)書

1. 遞歸

一個(gè)函數(shù)調(diào)用其自身,就是遞歸。

2. 漢諾塔

  • 問(wèn)題描述

有一個(gè)梵塔,塔內(nèi)有三個(gè)座A、B、C,A座上有諾干個(gè)盤子,盤子大小不等,大的在下,小的在上。把這些個(gè)盤子從A座移到C座,中間可以借用B座但每次只能允許移動(dòng)一個(gè)盤子,并且在移動(dòng)過(guò)程中,3個(gè)座上的盤子始終保持大盤在下,小盤在上。

漢諾塔問(wèn)題
  • 代碼
#include <iostream>
using namespace std;
void Hanoi(int n, char src, char mid, char dest) {
    if(n == 1) {
        cout<< src << "->" << dest <<endl;
        return;
    }
    Hanoi(n - 1, src, dest, mid);
    cout<< src << "->" << dest <<endl;
    Hanoi(n - 1, mid, src, dest);
}
int main() {
    int n;
    cin >> n;
    Hanoi(n, 'A', 'B', 'C');
    return 0;
}

總結(jié):漢諾塔問(wèn)題是遞歸中的經(jīng)典問(wèn)題了。

源碼地址:漢諾塔,記得給個(gè)star。

參考資料

  1. 程序設(shè)計(jì)與算法(二)算法基礎(chǔ)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容