1. 程式人生 > 實用技巧 >1018骨牌鋪方格(分治演算法)

1018骨牌鋪方格(分治演算法)

Description

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

Input

輸入包含一個整數n,表示該測試例項的長方形方格的規格是2×n (0< n<=50)。

Output

輸出鋪放方案的總數。

Sample

Input

3

Output

3

Hint

hdoj2046有連結提示的題目請先去連結處提交程式,AC後提交到SDUTOJ中,以便查詢存檔。

 1 #include <iostream>
 2 #include <stdio.h>
 3
#include <string> 4 #include <string.h> 5 #include <algorithm> 6 #include <math.h> 7 #include <map> 8 #include <vector> 9 10 using namespace std; 11 12 int main() 13 { 14 long long n, i, a[55]; 15 a[0] = 0; 16 a[1] = 1; 17 a[2] = 2; 18 for
(i=3; i<=52; i++) 19 { 20 a[i] = a[i-1] + a[i-2]; 21 } 22 while(cin >> n) 23 { 24 cout << a[n] << endl; 25 } 26 return 0; 27 }