骨牌鋪方格

2021-08-02 00:13:16 字數 1352 閱讀 7158

problem description

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

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

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

output

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

sample input

1

32

sample output

1

32

author

lcy

source

遞推求解專題練習(for beginner)

recommend

lcy

找規律,f(1)=1,f(2)=2,f(3)=5,當有n個方格的時候,有兩種鋪法:

1)先鋪好n-1個格,有f(n-1)個方法,再鋪第n層的時候只有一種方法,所以總方法是1*f(n-1);

2)先鋪好n-2格,有f(n-2)個方法,再鋪後面兩層的時候只能兩個都豎著鋪(否則與第一種情況重複),所以也只有一種情況,總方法數是1*f(n-2)

推出f(n)=f(n-1)+f(n-2)

注意會爆int,要使用long long

**:

#include #include #include #include #include #include #include #include #include #include #include #include #define maxn 15

#define maxn 100005

#define mod 1000000007

#define inf 0x3f3f3f3f

#define exp 1e-6

#define pi acos(-1.0)

using namespace std;

int main()

{ //freopen("d:\\a.txt","r",stdin);

ios::sync_with_stdio(false);

long long int f[51];

int n,i;

f[1]=1;

f[2]=2;

f[3]=3;

for(i=4;i<51;i++)

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

while(cin>>n)

{cout<

骨牌鋪方格

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方格,骨牌的鋪放方案有三種,如下...

骨牌鋪方格

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

骨牌鋪方格

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