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 對於每個測試例項,請輸出不同...