超級樓梯之歸納解法

2021-07-03 15:34:21 字數 643 閱讀 3481

題目:超級樓梯

problem description

有一樓梯共m級,剛開始時你在第一級,若每次最多只能跨n級,要走上第m級,共有多少種走法?

input

輸入資料首先包含乙個整數t(t<=100),表示測試例項的個數,然後是t行資料,每行包含乙個整數m(1<=m<=40),表示樓梯的級數,還有n值(1<=n<=4)。

output

對於每個測試例項,請輸出不同走法的數量

sample input

33 2

4 2 4 3

sample output

3歸納法:

設剛好爬到k(1≤k≤m)階梯有a(k)種不同爬法,按條件不難得出:a(1)=1,a(2)=2,…,a(n)=2^(n-1) 當1≤k≤n時a(k)=a(k-1)+a(k-2)+…+a(k-n) 當n<k時通過上式不斷迭代求出需要的a(m)c++實現**如下:
#include

#include

using namespace std;

int main()

int f[41];

int kk[101];

for(t=1;t<=t;t++)

kk[t]=f[m];

cout<

A 超級樓梯

有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個測試例項,請輸出不同走法的數量 sample input22...

超級樓梯問題

時間限制 3000ms 記憶體限制 32768kb 統計描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?輸入輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。輸出對於每個測試例項,請輸出...

P 超級樓梯

有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個測試例項,請輸出不同走法的數量 sample input 2...