1、將B位置的n-1盤移回A,借用空位C。至于,1和3如何完成,其實(shí)就是遞歸,n-1就是個(gè)抽象的數(shù),不管幾個(gè)都是這么做。最終它會(huì)分解為3個(gè)盤的情況,也就是漢諾塔的遞歸出口。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了巍山免費(fèi)建站歡迎大家使用!
2、hanoi(n-1,two,one,three);} } --- else后邊三句要括在一起。
3、也就是else中的第一個(gè)hanoi)的結(jié)束,接著在再次調(diào)用move函數(shù),在接下來就又是上面的過程了,移植到所有的遞歸都結(jié)束,才會(huì)重新返回main函數(shù)。
按照你上面的程序:n=3時(shí)執(zhí)行 hanoi(2,A,C,B)。
先看hanoi(1, one, two, three)的情況。這時(shí)直接將one柱上的一個(gè)盤子搬到three柱上。注意,這里one柱或three柱到底是A、B還是C并不重要,要記住的是函數(shù)第二個(gè)參數(shù)代表的柱上的一個(gè)盤被搬到第四個(gè)參數(shù)代表的柱上。
你需要抽象起來理解:對(duì)于第n個(gè)盤,它需要被移動(dòng)的方案是:將前n-1個(gè)從當(dāng)前位置移到第二個(gè)位置B上,可借用的空位是第三個(gè)位置C將n盤移動(dòng)到第三個(gè)位置也就是C 將B位置的n-1盤移回A,借用空位C。
hanoi塔問題, 算法分析如下,設(shè)a上有n個(gè)盤子,為了便于理解我將n個(gè)盤子從上到下編號(hào)1-n,標(biāo)記為盤子1,盤子..盤子n。如果n=1,則將“ 圓盤1 ” 從 a 直接移動(dòng)到 c。
1、//漢諾塔x層塔從A塔整體搬到C塔,中間臨時(shí)B塔。//x層塔是從大到小往上疊放。每次移動(dòng)只能移動(dòng)一層塔。
2、c語言證明漢諾塔次數(shù)公式:f(k+1)=2*f(k)+1來計(jì)算。
3、遞歸算法是我前些天寫的,非遞歸是剛才找的,里面含遞歸和非遞歸。
文章題目:c語言hanoit函數(shù) c 語言 函數(shù)
轉(zhuǎn)載注明:http://chinadenli.net/article20/dephcjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信小程序、網(wǎng)站收錄、網(wǎng)站導(dǎo)航、App設(shè)計(jì)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)