public static void moveplant(int size, listfirst,listsecond,listthird)
//首先將n-1個盤子,從第乙個柱子移動到第二個柱子
moveplant(size-1,first,third,second);
//然後將最後乙個盤子移動到第三個柱子上
third.add(first.remove(first.size()-1));
//最後將第二個柱子上的n-1個盤子,移動到第三個柱子上
moveplant(size -1 ,second,first,third);
}
分析:漢諾塔的考點是對遞迴的運用
演算法題 漢諾塔問題
三個柱子,起初有若干個按大小關係順序安放的盤子,需要全部移動到另外乙個柱子上。移動規則 在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。移動次數 f n 2n 1 使用遞迴演算法進行處理。漢諾塔的演算法大概有3個步驟 1 把a上的n 1個盤通過c移動到b。2 把a上的最下面的盤移到c。3...
演算法題 漢諾塔問題
www.i search.com.cn index.html?from line1 從一到無窮大 一書中提到乙個關於 世界末日 的問題。愛好數學的歷史學家 w.w.r.鮑爾 w.w.w.r.ball 是這樣說的 在貝拿勒斯那座偉大的神廟裡,代表世界中心的穹頂之下安放著一塊銅板,銅板上鑲有 3 根高 ...
演算法題 漢諾塔問題
問題描述 三個柱子,起初有若干個按大小關係順序安放的盤子,需要全部移動到另外乙個柱子上。移動規則 在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。移動次數 f n 2n 1 解法思路 使用遞迴演算法進行處理。漢諾塔的演算法大概有3個步驟 1 把a上的n 1個盤通過c移動到b。2 把a上的...