演算法 骨牌鋪方格 遞推

2021-10-10 11:25:04 字數 1069 閱讀 4188

在2×n的乙個長方形方格中,用乙個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數. 例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:

輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2×n (0< n<=50)。

對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。

1

32

1

32

此題用long long 型別

n = 0時,不能沒有塊可以填充,f(0) = 0;

n = 1時,只能豎著填充一塊,f(1) = 1;

n = 2時,可以豎著兩塊,橫著兩塊,f(2) = 2。

n = 3時,可以當成先選了一塊豎著的,然後f(3 - 1) = f(2),或者先選兩塊橫著的,然後f(3 - 2) = f(1),

所以f(3) = f(3 - 1) + f(3 - 2) = f(2) + f(1) = 3;

f (n

)=f(

n−1)

+f(n

−2),

n>

2f(n) = f(n - 1) + f(n - 2),\ n >2

f(n)=f

(n−1

)+f(

n−2)

,n>2

ac**:

#include

using

namespace std;

intmain()

;for

(int i =

3; i <

51; i++

) f[i]

= f[i -1]

+ f[i -2]

;int n;

while

(cin >> n)

cout << f[n]

<< endl;

return0;

}

骨牌鋪方格 遞推

原題鏈結 problem description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 input 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0output...

SDUT 骨牌鋪方格 遞推

time limit 1000 ms memory limit 32768 kib submit statistic problem description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 ...

骨牌鋪方格

time limit 1 sec memory limit 128 mb submit 43 solved 12 submit status web board 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下...