A 超級樓梯

2021-10-11 14:32:50 字數 739 閱讀 6888

有一樓梯共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級...