迷之遞迴 漢諾塔

2021-10-02 02:14:56 字數 973 閱讀 2804

漢諾塔

time limit: 1000 ms memory limit: 65536 kib

problem description

漢諾塔(又稱河內塔)問題是印度的乙個古老的傳說。

開天闢地的神勃拉瑪在乙個廟裡留下了三根金剛石的棒a、b和c,a上面套著n個圓的金片,最大的乙個在底下,其餘乙個比乙個小,依次疊上去,廟裡的眾僧不倦地把它們乙個個地從a棒搬到c棒上,規定可利用中間的一根b棒作為幫助,但每次只能搬乙個,而且大的不能放在小的上面。

僧侶們搬得汗流滿面,可惜當n很大時這輩子恐怕就很搬完了。

聰明的你還有計算機幫你完成,你能寫乙個程式幫助僧侶們完成這輩子的夙願嗎?

input

輸入金片的個數n。這裡的n<=10。

output

輸出搬動金片的全過程。格式見樣例。

sample input

2sample output

move disk 1 from a to b

move disk 2 from a to c

move disk 1 from b to c

hint

可以用遞迴演算法實現。

source

迷之**:

#include

void f(int n,char a,char b,char c)

}int main()

迷之**2:

#include

void f(int n,char a,char b,char c)

}int main()

這個題既然輸出的字母是定的沒有變化,所以說只能夠更換字母所代表的字母。

在函式中輸出的是a,c。

假如有3個盤。

1:a->c;

2:a->b;

1:c->b;

3:a->c;

1:b->a;

2:b->c;

1:a->c;

這是移動的步驟

遞迴之 漢諾塔

遞迴思想的概念 即將乙個複雜問題分解成一系列小的問題,並且這些小問題都具有相同的情形。此時可運用遞迴的思想來解決更易於理解 但並不一定是效率最高的哦 遞迴演算法有三個關鍵點 1 了解題意是否適用遞迴來解決 2 有明確的終止條件 通常是分解出來的一系列小問題裡最簡單的那種情況 3 隨著遞迴演算法的演進...

遞迴之漢諾塔

漢諾塔 time limit 1000 ms memory limit 65536 kib submit statistic problem description 漢諾塔 又稱河內塔 問題是印度的乙個古老的傳說。開天闢地的神勃拉瑪在乙個廟裡留下了三根金剛石的棒a b和c,a上面套著n個圓的金片,最...

遞迴之漢諾塔

問 如何移?最少要移動多少次?解法的基本思想是遞迴。假設有a b c三個塔,a塔有n塊盤,目標是把這些盤全部移到c塔。那麼首先將c塔作為中介,把a塔頂部的n 1塊盤移動到b塔,再把a塔剩下的n移到c,最後將a塔作為中介,把b塔的n 1塊盤移到c。每次移動多於一塊盤時,則再次使用上述演算法來移動。第一...