HDU2046 骨牌鋪方格 簡單的遞推問題

2021-10-21 20:07:38 字數 712 閱讀 4583

在2×n的乙個長方形方格中,用乙個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.

例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:

輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2×n (0對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。13

2132

當n=1時,只能豎著放一塊,只有這1種方案,f(1)=1

當n=2時,可以豎著放兩塊也可以橫著放兩塊,有2種方案,f(2)=2

當n=3時,若在最左側豎著放一塊,則方案數為f(2);若在最左側橫著放兩塊,則方案數為f(1)

當n=4時,若在最左側豎著放一塊,則方案數為f(3);若在最左側橫著放兩塊,則方案數為f(2)

以此類推,當n > 2時,f(n)=f(n - 1)+f(n - 2)

#include int main();

int n;

for(int i = 3;i <= 50;i++)

a[i] = a[i-1]+a[i-2];

while(scanf("%d",&n)!=eof)

printf("%lld\n",a[n]);

return 0;

}

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 ...