C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 262|回复: 1

ACM氺题 骨牌铺方格2 [复制链接]

Rank: 3Rank: 3

主题
23
帖子
244
C币
313 枚
在线时间
17 小时
发表于 2011-4-16 10:24:19 |显示全部楼层
分享到:
Problem Description
有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。

Input
输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列。

Output
输出一共有多少种铺设的方法,每组数据的输出占一行。

Sample Input
3
2
8
12

Sample Output
3
171
2731

Rank: 3Rank: 3

主题
23
帖子
244
C币
313 枚
在线时间
17 小时
发表于 2011-4-16 10:24:32 |显示全部楼层
#include<stdio.h>
int main()
{
        _int64 a,t,b[21],c,n,m,i;
        while(scanf("%I64d",&n)!=EOF)
        {
                t=n;
                while(n--){
                scanf("%I64d",&m);
                for(a=0,i=0,b[n]=1;i<m;i++)
                {
                        c=2*a+b[n];
                        a=b[n];
                        b[n]=c;
                }
                }
                for(i=t-1;i>=0;i--)
                        printf("%I64d\n",b[i]);
        }
       
        return 1;
}
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-5-20 17:57

©2009-2011 cyuyan.com.cn

回顶部