画8
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6577 Accepted Submission(s): 2907
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
思维题 但是写完 看看别人的比我的短 , 哎 貌似 自己写长了
code:
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
char a;
int n, weight, length;
void head()
{
for (int i=0; i<weight; i++)
{
printf (" ");
}
for (int i=0;i<length; i++)
{
printf ("%c",a);
}
printf ("\n");
}
int main()
{
int N;
scanf("%d",&N);
getchar();
while (N--)
{
scanf ("%c%d",&a,&n);
getchar();
weight = n/6+1;
// printf ("%d\n",weight);
n = n-3;
if (n%2==1)
length = n/2+1;
else
length = n/2;
head();
for (int j=0; j<n/2; j++)
{
for (int i=0; i<weight; i++)
{
printf ("%c",a);
}
for (int i=0; i<length; i++)
{
printf (" ");
}
for (int i=0; i<weight; i++)
{
printf ("%c",a);
}
printf ("\n");
}
head();
if (n%2==1)
n++;
for (int j=0; j<n/2; j++)
{
for (int i=0; i<weight; i++)
{
printf ("%c",a);
}
for (int i=0; i<length; i++)
{
printf (" ");
}
for (int i=0; i<weight; i++)
{
printf ("%c",a);
}
printf ("\n");
}
head();
if (N!=0)
printf ("\n");
}
return 0;
}