漢諾塔完整程式小結

2022-08-23 17:42:11 字數 595 閱讀 1441

漢諾塔問題

漢諾塔的演算法就3個步驟:

第一,把a上的n-1個盤通過c移動到b。

第二,把a上的最下面的盤移到c。

第三,因為n-1個盤全在b上了,

所以把b當做a重複以上步驟就好了。所以演算法看起來就簡單多了。

不過,思考過程還是很痛苦的,難以理解。遞迴中會儲存資料的好處在這裡又得到體現

//2014-4-2 23:54 漢諾塔完整程式

//比較難於理解,要反覆琢磨

# include void hannuota(int n, char a, char b, char c)//

此函式**比較難懂,好好反覆想明白

else

}int main(void

)補充:

漢諾塔問題(又稱河內塔問題)是根據乙個傳說形成的乙個問題:

有三根桿子a,b,c.a桿上有n個(n>1)穿孔圓盤,盤的尺寸由下到上依次變小.要求按下列規則將所有圓盤移至c杆:

1.每次只能移動乙個圓盤;

2.**不能疊在小盤上面.

可將圓盤臨時置於b杆,也可將從a杆移出的圓盤重新移回a杆,但都必須尊循上述兩條規則.

漢諾塔程式

include stdio.h void move char x,char y 自定義move函式,用來將塊從起始柱子x移動到目標柱子y,這裡的x,y為形參,不代表具體哪根柱子 void hannuota int n,char a,char b,char c 自定義hannuota函式,這裡的a,b...

python 漢諾塔 Python漢諾塔

import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...

漢諾塔合集之漢諾塔3

漢諾塔3 步驟分析 1.當只有乙個圓盤時,要從a到b再到c 2.同樣擴充套件經典漢諾塔問題來看,先把a柱上 n 1 個圓盤,經b移動到c 3.把最後乙個圓盤從a移動到b 4.把c柱上的 n 1 個圓盤,經b移動 移回 到a 5.把b上的最後乙個圓盤從b移到c 6.最後把a上的 n 1 個圓盤經過b移...