南阳oj 棋盘覆盖 题目45

给大家推荐个靠谱的公众号程序员探索之路,大家一起加油 



棋盘覆盖

时间限制: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

                                                                                    

 

 

 

 

 

 

 

 

 

图1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                             图2                     

 

 

 

 

 

 

输入

第一行m表示有m组测试数据;
每一组测试数据的第一行有一个整数数k;

输出

输出所需个数s;

样例输入

3
1
2
3

样例输出

1
5
21

来源

《算法设计》题

上传者

李剑锋

//#include
#include
#include
//#include
//using namespace std;
int main()
{
	int m,n;
	char str[101][20000];
	str[1][0]='1';
	for(int i=2;i<=100;i++)
	{
	 int k=1;
	 int l=strlen(str[i-1]);
	for(int j=0;j0)
	{
		str[i][l++]=k%10+'0';
		k/=10;
	}
	}
	scanf("%d",&m);
	while(m--)
	{
		scanf("%d",&n);
		for(int i=strlen(str[n])-1;i>=0;i--)
		{
			printf("%c",str[n][i]);
		}
		printf("\n");
	}
	return 0;
} 

 

你可能感兴趣的:(大数问题)