遞歸算法:梵塔問題

1、環(huán)境配置:

  • 系統(tǒng):win10
  • 編程語言:C++
  • 編譯器:DevC++

2、算法思想:

簡化步驟,將問題看成是把n個鐵片中的n-1個通過c從a移動到b,剩下的第n個移動從a移動到c,然后再把n-1個通過a從b移動到c,分成三步即可。

3、代碼:

/*
梵塔問題 
*/
#include<iostream>

using namespace std;

void f(char x,char y,char z,int n);//n為最底層漢諾塔鐵片的編號,編號越小鐵片越小越靠上! 

int main(){
    char x = 'a';
    char y = 'b';
    char z = 'c'; 
    int h = 3; //漢諾塔深度 
    f(x,y,z,h);
    return 0;
} 

void f(char x,char y,char z,int n)//把n層hannio塔從x通過y移動到z; 
{
    if(n!= 0){
        f(x,z,y,n-1);
        cout<<n<<"通過"<<x<<"移動到"<<z<<endl;
        f(y,x,z,n-1); 
    } 
}

4、結(jié)果展示:

結(jié)果2.png

5、反思總結(jié):

遞歸就是自己調(diào)用自己。

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

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

  • 題目描述 在經(jīng)典漢諾塔問題中,有 3 根柱子及 N 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤...
    珺王不早朝閱讀 1,027評論 0 0
  • Hanoi(漢諾)塔問題,這是一個古典的數(shù)學問題。古印度有一個梵塔,塔內(nèi)有3個柱子A,B,C,開始時A柱上套有64...
    靜亞哦閱讀 478評論 0 0
  • 1、環(huán)境配置: 系統(tǒng):win10 編程語言:C++ 編譯器:DevC++ 2、算法思想: 將累加問題看成n+(n-...
    疋瓞閱讀 856評論 0 0
  • 之前分享了一篇隨機算法,這次再把以前寫的遞歸算法的文章梳理一下,這篇文章主要是受到宋勁松老師寫的《Linux C編...
    __七把刀__閱讀 11,974評論 3 27
  • 原文鏈接(轉(zhuǎn)載請注明出處)漢諾塔的圖解遞歸算法 起源 漢諾塔(又稱河內(nèi)塔)問題是源于印度一個古老傳說的益智玩具。大...
    Dmego閱讀 1,666評論 0 0

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