有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?
input
輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m(1<=m<=40),表示樓梯的級數。
output
對於每個測試例項,請輸出不同走法的數量
sample input22
3sample output12
sponsor
思路:找出遞推公式為
f(1)=1
f(2)=2
f(n)=f(n-1)+f(n-2);
但是這個遞迴會超時
超時**如下
#include
intf
(int floor)
;int
main()
return0;
}intf(
int floor)
因此這個需要用打表的方法,將跑的結果全部記錄下來,也就是說不用每次輸入乙個值都跑遞迴,而是直接輸出「表」裡的內容,因此時間複雜度降低了,就不會超時了,使用陣列作為:」表「
ac**如下
#include
intmain()
scanf
("%d"
,&n)
;while
(n--
)return0;
}
超級樓梯問題
時間限制 3000ms 記憶體限制 32768kb 統計描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?輸入輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。輸出對於每個測試例項,請輸出...
P 超級樓梯
有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個測試例項,請輸出不同走法的數量 sample input 2...
H 超級樓梯
有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。對於每個測試例項,請輸出不同走法的數量 2 2 31 2遞推 f 1 0,因為開始就站在第1級...