hdu 2041 超級樓梯

2021-08-16 22:01:47 字數 809 閱讀 6701

problem description

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

input

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

output

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

sample input

2 2

3sample output 1 2

思路

遞推問題,走上第m級;由於每次只能上一級或兩級;

所以走到第m級的走法等於走到第m-1級和m-2級走法之和;

即:f(n)=f(n-2)+f(n-1) 菲波拉契數列

f(1)=0,因為開始就站在第1級台階上;

f(2)=1,只能從第1級台階上1級;

f(3)=2,只能從第1級台階上2級,或只能從第2級台階上1級;

f(n)=f(n-2)+f(n-1),n>3。

注意:

若使用遞迴,時間會爆

果斷打表

#include

#include

#include

#include

using

namespace

std;

long

long f(int n)

}return f[n];

}int main()

hdu 2041 超級樓梯

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

HDU 2041 超級樓梯

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

hdu 2041 超級樓梯

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