Problem D: Tri Tiling
In how many ways can you tile a 3x n rectangle with 2x1 dominoes?Here is a sample tiling of a 3x12 rectangle.
Input consists of several test cases followed by a line containing -1. Each test case is a line containing an integer 0 ≤ n ≤ 30. For each test case, output one integer number giving the number of possible tilings.
Sample input
2 8 12 -1
Output for Sample Input
3 153 2131
题意:给定n求出n*3又1*2拼成需要几种。
思路:自己推的公式错了。。哎。。没考虑清楚,后来看题解http://www.cnblogs.com/staginner/archive/2011/12/16/2290020.html
代码:
#include <stdio.h>
#include <string.h>
int n;
int f[35];
void init() {
f[0] = 1; f[2] = 3;
for (int i = 4; i <= 30; i ++) {
f[i] = 4 * f[i - 2] - f[i - 4];
}
}
int main() {
init();
while (~scanf("%d", &n) && n != -1) {
printf("%d\n", f[n]);
}
return 0;
}