您的位置:首页 > 其它

杭电 1256 画8 (简单的字符串处理)

2014-07-24 16:04 148 查看

画8

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 4164 Accepted Submission(s): 1805

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




Source
浙江工业大学第四届大学生程序设计竞赛



Recommend
JGShining
思路:

观察图形,细审题,即可找到规律。

代码如下:

#include<stdio.h>

int main()

{

int n,m,i,j,p,q;

char c;

scanf("%d",&n);

while(n--)

{

getchar();//注意此处的吸收换行字符的 不能放在while外面 否则只有第一组数据能够正常输出

scanf("%c%d",&c,&m);

p=m/6+1;

q=m-3-(m-3)/2;

for(j=1;j<=m;j++)

{

if(j==1||j==m||j==(m+1)/2)

{

for(i=1;i<=p;i++)

printf(" ");

for(i=1;i<=q;i++)

printf("%c",c);

printf("\n");

}

else

{

for(i=1;i<=p;i++)

printf("%c",c);

for(i=1;i<=q;i++)

printf(" ");

for(i=1;i<=p;i++)

printf("%c",c);

printf("\n");

}

}

if(n>0)

printf("\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: