题目背景
『菱形真漂亮』
『那我帮你打印一个吧』
小 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}。
AC代码
cpp
#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;
}