棋盘覆盖

来源:互联网 发布:画画软件手机版 编辑:程序博客网 时间:2024/05/11 01:15

这里写图片描述棋盘覆盖
时间限制:3000 ms | 内存限制:65535 KB
难度:3

描述

在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求需要类似图2方格总的个数s。如k=1时,s=1;k=2时,s=5

输入
第一行m表示有m组测试数据;
每一组测试数据的第一行有一个整数数k;
输出
输出所需个数s;
样例输入

3123

样例输出

1521
#include<stdio.h>int main(){    int N,k, i,j,len,temp,jw;    scanf("%d",&N);    while(N--)    {        int a[100]= {0};        scanf("%d",&k);        len=1;        a[1]=1;        for(i=1; i<=k; i++)        {            jw=0;            for(j=1; j<=len; j++)//每步不加1            {                temp=a[j]*4+jw;                a[j]=temp%10;                jw=temp/10;                if(j==len&&jw!=0)                    len++;            }        }        temp=0;        int m=0;        for(i=len; i>=1; i--) //整除3做法        {            temp=m*10+a[i];            a[i]=temp/3;            m=temp%3;        }        while(a[len]==0)            len--;        for(i=len; i>=1; i--)            printf("%d",a[i]);        printf("\n");    }    return 0;}
原创粉丝点击