問題鏈結:hdu2046 骨牌鋪方格。入門訓練題,用c語言編寫程式。
這是乙個典型的遞推計算題。
f(0) = 0,沒有地方擺骨牌,所以為0;
f(1) = 1,只能豎著擺放1個骨牌;
f(2) = 2,可以是橫著擺放2個骨牌,或者豎著擺放2個骨牌;
f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基礎上在右邊再橫著放2個骨牌(豎著放已經在f(n-1)中),也可以在f(n-1)的基礎上在右邊再豎著1個骨牌。
ac程式如下:
/* hdu2046 骨牌鋪方格 */
#include
#define maxn 50
typedef unsigned long long ull;
ull fn[maxn+1];
void setfn()
int main(void)
HDU2046骨牌鋪方格
description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 input 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0 output 對於每個測試例項,請輸...
HDU 2046 骨牌鋪方格
遞迴總體思路 對於 1張 1 2 的骨牌,它只有橫放 豎放2種情況 如果要豎放,前 n 1 張牌必須已經固定好,因而這種情況下,就是 f n 1 同理,如果要橫放,前 n 2 張牌必須已經固定好,這種情況下,就是 f n 2 把2種情況下的方案加起來,就是 n 張骨牌的放置方案總數 也可參見這個題解...
hdu2046 骨牌鋪方格
在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。1 3 2 ...