nyoj 76 超級台階 (遞推)

2021-09-26 21:58:37 字數 956 閱讀 7549

記憶體限制:64mb 時間限制:1000ms 特判: no

通過數:8 提交數:12 難度:3

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

注:規定從一級到一級有0種走法。

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

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

複製

2

23

1

2分析:

1、第m階的走法應該是前面m-1階的走法 + 前面m-2階的走法;

2、m-1的走法就表示最後只走乙個台階,m-2的走法表示最後上兩個台階;

ps:所以我們可以類推,如果最初有三種走法即就是上1、2、3階,那麼當前的走法 = f[m-1] + f[m-2] + f[m-3].

核心**:

1

for(int i = 4; i <= maxn; ++i)

2

c/c++**實現(ac):

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 

1011

using

namespace

std;

12const

int maxn = 45;13

int f[maxn] = ;

1415

void

cal_excel()

1620

21int

main()

2232

return0;

33 }

nyoj 76 超級台階 (遞推)

記憶體限制 64mb 時間限制 1000ms 特判 no 通過數 8 提交數 12 難度 3 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法?注 規定從一級到一級有0種走法。輸入資料首先包含乙個整數n 1 n 100 表示測試例項的個數,然後是n行資料,每行...

超級台階(NYOJ76)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法?注 規定從一級到一級有0種走法。輸入 輸入資料首先包含乙個整數n 1 n 100 表示測試例項的個數,然後是n行資料,每行包含乙個整數m,...

nyoj 76 超級台階

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法?注 規定從一級到一級有0種走法。輸入 輸入資料首先包含乙個整數n 1 n 100 表示測試例項的個數,然後是n行資料,每行包含乙個整數m,...