1、為了更清楚地描述算法,可以定義一個(gè)函數(shù)movedisc(n,a,b,c)。該函數(shù)的功能是:將N個(gè)盤(pán)子從A桿上借助C桿移動(dòng)到B桿上。
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比江川網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式江川網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋江川地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。
2、因此,解決漢諾塔問(wèn)題可設(shè)計(jì)一個(gè)遞歸函數(shù),利用遞歸實(shí)現(xiàn)圓盤(pán)的整個(gè)移動(dòng)過(guò)程,問(wèn)題的解決過(guò)程是對(duì)實(shí)際操作的模擬。
3、就是輸出兩個(gè)CHAR型數(shù)據(jù),中間用--連接。而這兩個(gè)CHAR的數(shù)據(jù)就是x和z。
4、先看hanoi(1, one, two, three)的情況。這時(shí)直接將one柱上的一個(gè)盤(pán)子搬到three柱上。注意,這里one柱或three柱到底是A、B還是C并不重要,要記住的是函數(shù)第二個(gè)參數(shù)代表的柱上的一個(gè)盤(pán)被搬到第四個(gè)參數(shù)代表的柱上。
首先把三根柱子按順序排成品字型,把所有的圓盤(pán)按從大到小的順序放在柱子A上,根據(jù)圓盤(pán)的數(shù)量確定柱子的排放順序:若n為偶數(shù),按順時(shí)針?lè)较蛞来螖[放 A B C;若n為奇數(shù),按順時(shí)針?lè)较蛞来螖[放 A C B。
先看hanoi(1, one, two, three)的情況。這時(shí)直接將one柱上的一個(gè)盤(pán)子搬到three柱上。注意,這里one柱或three柱到底是A、B還是C并不重要,要記住的是函數(shù)第二個(gè)參數(shù)代表的柱上的一個(gè)盤(pán)被搬到第四個(gè)參數(shù)代表的柱上。
//漢諾塔x層塔從A塔整體搬到C塔,中間臨時(shí)B塔。//x層塔是從大到小往上疊放。每次移動(dòng)只能移動(dòng)一層塔。
如果只有一個(gè)盤(pán)子,則不需要利用B座,直接將盤(pán)子從A移動(dòng)到C。如果有2個(gè)盤(pán)子,可以先將盤(pán)子1上的盤(pán)子2移動(dòng)到B;將盤(pán)子1移動(dòng)到c;將盤(pán)子2移動(dòng)到c。
1、c語(yǔ)言證明漢諾塔次數(shù)公式:f(k+1)=2*f(k)+1來(lái)計(jì)算。
2、//漢諾塔x層塔從A塔整體搬到C塔,中間臨時(shí)B塔。//x層塔是從大到小往上疊放。每次移動(dòng)只能移動(dòng)一層塔。
3、先看hanoi(1, one, two, three)的情況。這時(shí)直接將one柱上的一個(gè)盤(pán)子搬到three柱上。注意,這里one柱或three柱到底是A、B還是C并不重要,要記住的是函數(shù)第二個(gè)參數(shù)代表的柱上的一個(gè)盤(pán)被搬到第四個(gè)參數(shù)代表的柱上。
4、/***漢諾塔的算法就3個(gè)步驟:第一,把a(bǔ)上的n-1個(gè)盤(pán)通過(guò)c移動(dòng)到b。第二,把a(bǔ)上的最下面的盤(pán)移到c。a成了空的。第三,因?yàn)閚-1個(gè)盤(pán)全在b上了,所以把b當(dāng)做a.重復(fù)以上步驟就好了。所以算法看起來(lái)就簡(jiǎn)單多了。
5、要看懂遞歸程序,往往應(yīng)先從最簡(jiǎn)單情況看起。先看hanoi(1, one, two, three)的情況。這時(shí)直接將one柱上的一個(gè)盤(pán)子搬到three柱上。
6、A-B B-C就等于A(yíng)-C只是多移動(dòng)一次而已。所以你的想法實(shí)質(zhì)是A-C A-C A-C A-B C-B這就明顯的錯(cuò)誤了阿!C上面已經(jīng)有盤(pán)子了你不能在進(jìn)行A-c這步了阿!因?yàn)楸P(pán)子是大的在下,小的在上。