漢諾塔問題漢諾塔的演算法就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移...