Problem H: 特朗普画像
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1624 Solved: 694
Description
特朗普当选了,网上流传着很多段子,也出了特朗普的头像。有人说,特朗普的头像像一团云。所以今年马云去了美国和特朗普谈中美企业的发展。那么你能帮忙打印出特朗普的头像吗?
抽象派认为,特朗普的头像上半部分可以由一些*组成。由上下对称的两个梯形组成,梯形每一层之间相差1个星号。告诉你梯形的上边星号,梯形层数,你能打印出来吗?
Input
多组测试,输入2个整数,分别是梯形的上边星号,梯形层数
Output
输出头像
Sample Input
3 5
6 4
Sample Output
***
****
*****
******
*******
******
*****
****
***
******
*******
********
*********
********
*******
******
HINT
上次有道人脸识别用数组写,这次也尝试用数组写。总之像金字塔这种找到规律用循环printf也挺快的。没啥大区别。人脸识别不用数组比较麻烦。
代码如下:
#include<stdio.h>
#include<string.h>
char a[100][100];
int main(void)
{
int i,j,n,m,p,u;
while(scanf("%d%d", &n, &m)!=EOF)
{
p=m-1;
for(i=0;i<m;i++)
{
for(j=0;j<n+m-1;j++)
{
if(j<p)
a[i][j]=' ';
else
a[i][j]='*';
}
p--;
}
u=m-2;
for(i=m;i<2*m-1;i++)
{
for(j=0;j<n+m-1;j++)
{
strcpy(a[i],a[u]);
}
u--;
}
for(i=0;i<m*2-1;i++)
{
for(j=0;j<n+m-1;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
memset(a,'\0',sizeof(a));
}
return 0;
}