1. 程式人生 > >hdu_problem_2046_骨牌鋪方格

hdu_problem_2046_骨牌鋪方格

情況1:在n-1個格子後加一列,只能豎著放,所以是a[n-1]
情況2:在n-2個格子後加兩列,只能橫著放兩個(豎著的屬於第一種),所以是a[n-2]
在這裡插入圖片描述

/*
*
*Problem Description
*在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.
*例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:
*
*
*
*Input
*輸入資料由多行組成,每行包含一個整數n,表示該測試例項的長方形方格的規格是2×n (0<n<=50)。
*
*
*Output
*對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。
*
*
*Sample Input
*1
*3
*2
*
*
*Sample Output
*1
*3
*2
*
*
*Author
*lcy
*
*
*Source
*遞推求解專題練習(For Beginner)
*
*
*Recommend
*lcy
*
*/
#include<iostream> using namespace std; long long a[100] = { 0,1,2 }; void func() { for (int i = 3; i < 100; i++) { a[i] = a[i - 1] + a[i - 2]; } } int main() { int n; func(); while (cin >> n) { cout << a[n] << endl; } system("pause"); return 0; }