遞推遞迴 D 漢諾塔系列1

2021-07-30 07:30:14 字數 438 閱讀 3006

題目:

解題思路:實在是學生愚鈍,看了半天題目就是沒看懂什麼意思,但是看樣例輸入與輸出之間可能跟三有關係,用計算機計算了一下3的29次方剛好是第三個輸出。。。。

然後就直接寫**了。

**:#include

using namespace std;

int main()

{long long  i,j,n,k,a[1000];

a[1]=3;a[2]=9;

while(cin>>k)

{   for(j=0;j>n;

for(i=3;i<=n;i++)

a[i]=a[i-1]*3;

cout回顧:

看不懂題目光去猜是沒有意思的,我也上網查了一下這道題目的意思,但是沒有找到,倒是找到了一道經典原題,那道題目要求算出移動的總次數來,我仔細看了半天才明白,感覺遞推比較難理解。

漢諾塔系列專題(逐步理解遞推遞迴)

最裸的漢諾塔 第一步 把n 1個盤子移到b柱 第二步 把第n個柱子移到c柱 第三步 把n 1個盤子移到c盤 第一步和第三步是一樣的,如果只需要求最少的步數,可以不管中間步驟,用遞推直接寫出即可 核心 a 1 1 for int i 2 i n i a i 2 a i 1 1 最裸的弄懂當然是遠遠不夠...

遞迴1 漢諾塔

漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。後來,這個傳說就...

HDOJ 漢諾塔系列(遞推分析)

漢諾塔v 設當有n個盤子時,第i個盤子從乙個柱子移到另乙個柱子需要移動的步數為f n,p 則有 當n p時 即p是最底下的那個盤子 f n,p 1 而當n!p時,p要跟著上面n 1個盤子先移動到b柱子,等n移到c後再移到c柱子。所以此時f n,p 2 f n 1,p view code includ...