0
点赞
收藏
分享

微信扫一扫

hdoj 画8 1256 (简单模拟)有坑点


画8


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5103    Accepted Submission(s): 2207



Problem Description


谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发.




Input


输入的第一行为一个整数N,表示后面有N组数据.
每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.




Output


画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.
每画一个"8"应空一行,但最前和最后都无空行.




Sample Input


2 A 7 B 8




Sample Output


AA
AA  AA
AA  AA
  AA
AA  AA
AA  AA
  AA

  BBB
BB   BB
BB   BB
  BBB
BB   BB
BB   BB
BB   BB
  BBB


 


//有坑点,在输出的横着的那三行时,字符的后面不能有空格。(PE了5次)。。。


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
	int t,n,i,j,k;
	int x[3];
	int y1,y2;
	int l;
	char c;
	scanf("%d",&t);
	while(t--)
	{
		getchar();
		scanf("%c%d",&c,&n);
		x[0]=1;x[1]=(1+n)/2;x[2]=n;
		y1=(n-3)/2;
		l=n/6+1;
		if(n&1)
			y2=y1;
		else
		y2=y1+1;
		for(i=1;i<=l;i++)
			printf(" ");
		for(i=l+1;i<=l+y2;i++)
			printf("%c",c);
		printf("\n");
		for(i=2;i<x[1];i++)
		{
			for(j=1;j<=l;j++)
				printf("%c",c);
			for(j=l+1;j<=l+y2;j++)
				printf(" ");
			for(j=l+y2+1;j<=l+y2+l;j++)
				printf("%c",c);
			printf("\n");
		}
		for(i=1;i<=l;i++)
			printf(" ");
		for(i=l+1;i<=l+y2;i++)
			printf("%c",c);
		printf("\n");
		for(i=x[1]+1;i<x[2];i++)
		{
			for(j=1;j<=l;j++)
				printf("%c",c);
			for(j=l+1;j<=l+y2;j++)
				printf(" ");
			for(j=l+y2+1;j<=l+y2+l;j++)
				printf("%c",c);
			printf("\n");
		}
		for(i=1;i<=l;i++)
			printf(" ");
		for(i=l+1;i<=l+y2;i++)
			printf("%c",c);
		printf("\n");
		if(t)
			printf("\n");
	}
	return 0;
}


举报

相关推荐

0 条评论