『菱形真漂亮』
『那我帮你打印一个吧』
小 L 和小 Z 开始打印图形了。
小 Z 喜欢菱形和矩形,小 L 为了使小 Z 开心,于是打算找你帮『他』写一个程序。
一共需要一下两种操作:
1 x y
,输出一个长?x?个单位,宽?y?个单位的矩阵。
2 x
,输出一个由?x?行组成的菱形。
其中一个单位长度为?*
?的长度。
具体可以看样例。
小 L 要打印?t,所以要输入多组数据。
第一行一个正整数:t。
接下来?t?行:
输入一个数 op∈{1,2}。
若 op=1:输入剩下两个正整数 x,y。
若 op=2:输入剩下一个正整数?x。
保证对于 op=2?时:x?为奇数。
输出共?t?个:
对于第cnt?个:
输出?Case cnt:
。
下一行输出要求输出的内容。
输入 #1
2 1 2 3 1 3 4
输出 #1
Case 1: ** ** ** Case 2: *** *** *** ***
输入 #2
2 2 5 2 7
输出 #2
Case 1: * *** ***** *** * Case 2: * *** ***** ******* ***** *** *
本题采用捆绑测试。
请勿输出多余行末空格。
对于所有测试数据保证:1≤t≤2×104,1≤x,y≤20,op∈{1,2}。
#include<iostream>
using namespace std;
void lin(int cnt,int n)
{
int j,i,k,a,b,c;
cout<<"Case "<<cnt<<":"<<endl;
for(i=1; i<=n; i++)
{
for(k=1; k<=n-i+1; k++)
{
cout<<" ";
}
for(j=1; j<=2*i-1; j++)
{
cout<<"*";
}
cout<<endl;
}
for(a=1; a<=n+1; a++)
{
for(b=1; b<=a-1; b++)
{
cout<<" ";
}
for(c=1; c<=(n-b+2)*2-1; c++)
{
cout<<"*";
}
cout<<endl;
}
}
void ju(int cnt,int x,int y)
{
cout<<"Case "<<cnt<<":"<<endl;
for(int i=1; i<=y; i++)
{
for(int j=1; j<=x; j++)
{
cout<<"*";
}
cout<<endl;
}
}
int main()
{
int n,cnt=0;
int o,x,y;
cin>>n;
while(n--)
{
cnt++;
cin>>o;
if(o==2)
{
cin>>x;
x=(x-1)/2;
lin(cnt,x);
}
else
{
cin>>x>>y;
ju(cnt,x,y);
}
}
return 0;
}