新規則:限制不能從最左側的塔直接移動到最右側,也不能從最右側直接移動到最左側,而是必須經過中間。求當塔有n層的時候,列印最優移動過程和最優移動步數;
public
class hanoiproblem1
public
static
inthanoi(int num,string left,string mid,string right)
return process(num,left,mid,right,left,right);
}public
static
intprocess(int num,string left,string mid,string right,string from,string to)else
}//n個盤子的時候
//並且其中乙個端點在中間的情況 有三大步驟
if(from.equals(mid) || to.equals(mid))else}}
測試結果:
漢諾塔公升級版(搜尋)
題目描述 漢諾塔公升級了 現在我們有?個圓盤和?個柱子,每個圓盤大小都不一樣,大的圓盤不能放在小的圓盤上面,個柱子從左到右排成一排。每次你可以將乙個柱子上的最上面的圓盤移動到右邊或者左邊的柱子上 如果移動之後是合法的話 現在告訴你初始時的狀態,你希望用最少的步數將第?大的盤子移動到第?根柱子上,問最...
漢諾塔問題(Hanoi塔)
1.將from柱最上面的movesum 1個圓盤移動到by柱 借助to柱 2.將from柱上剩下的那1個圓盤直接移動到to柱 3.將by柱上的movesum 1個圓盤移動到to柱 借助from柱 int sumofplates 4 總的盤子數目 int sum 3 初始時各柱子上盤子數目 enum ...
漢諾塔問題 Hanoi
描述 一 漢諾塔問題 問 如何移?最少要移動多少次?漢諾塔示意圖如下 三個盤的移動 二 故事由來 法國數學家愛德華 盧卡斯曾編寫過乙個印度的古老傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片...