Tri Tiling

Tri Tiling

时间: 1ms        内存:128M

描述:

In how many ways can you tile a 3xn 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.

输入:

输出:

示例输入:

2
8
12
-1

示例输出:

3
153
2131

提示:

参考答案(内存最优[964]):

#include<stdio.h>
int main()
{
	int n,i,a[31];
	a[0]=1;
	a[2]=3;
	a[4]=11;
	for(i=6;i<31;i+=2)
		a[i]=a[i-2]*4-a[i-4];
	while(scanf("%d",&n)!=EOF,n!=-1)
	{
		if(n%2==0)
			printf("%d\n",a[n]);
		else
			printf("0\n");
	}
	return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
int main()
{
	int n,i,a[31];
	a[0]=1;
	a[2]=3;
	a[4]=11;
	for(i=6;i<31;i+=2)
		a[i]=a[i-2]*4-a[i-4];
	while(scanf("%d",&n)!=EOF,n!=-1)
	{
		if(n%2==0)
			printf("%d\n",a[n]);
		else
			printf("0\n");
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注