1.對於漢諾塔,給了k層的碟 和三個分別為a、b、c的柱子,碟都在a上。
我們如何解決問題的呢?我們是將k-1層從a移動到b上,再將第k個碟子由a移動到c這個柱子上,再將k-1層移動到k的上面。
至於k-1層如何移動我們不需要考慮。
2.對於這兩層的關係,我們可以知道k層總的移動數就是k-1層移動的數量+第k層從a到c的數量(也就是1)+k-1層移動的數量。
3.同理,k-1層也就一樣啊,也就是k-2層移動的數量加上第k-1層從a移動到c的數量再加上k-2層搬到第k-1層移動的數量。至於k-1層如何,我們還是不用考慮
…**4.**最後到了遞迴終結的條件了,就是只有一層的時候,直接就是1
#include
using
namespace std;
int n;
solve
(int x,
char a,
char b,
char c)
else
}int
main()
傳送門
題目大意是:要移動x層碟子,第k層移動了多少步
一層:第一層 移動1步
二層:第一層 移動2步
第二層 移動1步
三層:第一層 移動4步
第二層 移動2步
第三層 移動1步
…從這裡就能發現規律,2^(x-k),但用pow肯定會爆
#include
using
namespace std;
typedef
long
long ll;
int n,x,k;
ll solve
(int a,
int b)
return2*
solve
(a-1
,b);
}int
main()
return0;
}
傳送門
這道題讓我對遞迴進一步加深。
資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
fj在沙盤上寫了這樣一些字串:
a1 = 「a」
a2 = 「aba」
a3 = 「abacaba」
a4 = 「abacabadabacaba」
… …你能找出其中的規律並寫所有的數列an嗎?
輸入格式
僅有乙個數:n ≤ 26。
輸出格式
請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空格或換行、回車符。
樣例輸入
3樣例輸出
abacaba
題解:這道題跟漢諾塔相同。
a4=a3+1+a3
…ak=ak-1+1+ak-1
遞迴終止 a
#include
using
namespace std;
int n;
void
solve
(int x)
else
}int
main()
基礎練習 FJ的字串
題目鏈結藍橋杯 基礎練習 題解 問題描述 fj在沙盤上寫了這樣一些字串 a1 a a2 aba a3 abacaba a4 abacabadabacaba 你能找出其中的規律並寫所有的數列an嗎?輸入格式 僅有乙個數 n 26。輸出格式 請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空...
基礎練習 FJ的字串
問題描述 fj在沙盤上寫了這樣一些字串 a1 a a2 aba a3 abacaba a4 abacabadabacaba 你能找出其中的規律並寫所有的數列an嗎?輸入格式 僅有乙個數 n 26。輸出格式 請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空格或換行 回車符。樣例輸入 3樣...
基礎練習 FJ的字串
問題描述 fj在沙盤上寫了這樣一些字串 a1 a a2 aba a3 abacaba a4 abacabadabacaba 你能找出其中的規律並寫所有的數列an嗎?輸入格式 僅有乙個數 n 26。輸出格式 請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空格或換行 回車符。樣例輸入 3樣...