还是打印菱形
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
这个菱形大家熟悉吧。
* *** ***** *** *
现在要求的是打印这样的菱形:不要*号,要最外层是字母A,然后里一层是B,再里一层是C···这样呢?
A ABA ABCBA ABA A
-
输入
-
第一行是一个正整数N(N≤25),代表有N组测试数据。
每一组数据包括一个正整数M(1≤M≤25),表示菱形的半径(直径就是M*2+1)。
输出
- 对于每组数据,输出要求打印的菱形。 样例输入
-
1 2
样例输出
-
A ABA ABCBA ABA A
-
第一行是一个正整数N(N≤25),代表有N组测试数据。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int time=scanner.nextInt();
while(time--!=0)
{
int number=scanner.nextInt();
int arr[][]=new int[2*number+1][2*number+1];
arr[number][number]=number+1;
for(int i=number-1;i>=0;i--)
{
arr[number][i]=arr[number][i+1]-1;
}
for(int i=number+1;i<2*number+1;i++)
{
arr[number][i]=arr[number][i-1]-1;
}
for(int i=number-1;i>=0;i--)
{
for(int j=0;j<2*number+1;j++)
{
arr[i][j]=arr[i+1][j]-1;
}
}
for(int i=number+1;i<2*number+1;i++)
{
for(int j=0;j<2*number+1;j++)
{
arr[i][j]=arr[i-1][j]-1;
}
}
for(int i=0;i<2*number+1;i++)
{
for(int j=0;j<2*number+1;j++)
{
if(arr[i][j]>0)
{
char c='A';
System.out.printf("%c",arr[i][j]+c-1);
}
else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
}