https://www.acmicpc.net/problem/11727

 

11727번: 2×n 타일링 2

2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.

www.acmicpc.net

더보기
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> arr;
    arr.resize(n + 1);
    arr[1] = 1;
    for (int i = 2; i <= n; i++) {
        if (i % 2 == 0) {
            arr[i] = (arr[i - 1] * 2 + 1) % 10007;
        }
        else {
            arr[i] = (arr[i - 1] * 2 - 1) % 10007;
        }
    }
    
    cout << arr[n] << endl;
}