输入描述
输入一个大写字母与一个整数n,1<=n<=26;
输出描述
输出如下高度为2n-1的菱形;
注意:A的下一个字母是B,Z的下一个字母是A
样例输入
R 12
样例输出
思路
图形由字母和空格组成,而且是由上下两个三角形构成,用一个数组存放字母,用下标判断输出那个字母,用两个参数分别判断打印字母前需要多少个空格,和两个字母之间需要多少个空格
code
package com.java;
import java.util.* ;
public class hollow_diamond {
public static void main(String[] args){
char a[] = {'A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
Scanner input = new Scanner(System.in);
char c = input.next().charAt(0);
int n = input.nextInt();
int i,j,r;int digit;
int number=0;
digit=n-1;
for(i=0;i<26;i++){
if(c==a[i])
number = i; //求出输入的字母对应的数组的下标
}
int count = 0;
//分为上下两个三角形打印
for(i=1;i<=n;i++){
for (j=1;j<=digit;j++){
System.out.printf(" ");
}
digit--; //digit用于判断第一个字母前空格的多少
if (i==1){
System.out.printf("%c\n",a[number%26]);
count++;
number++;
} //第一排只有一个字母输出,单独判断
else{
System.out.printf("%c",a[number%26]);
for (r=1;r<=count;r++)
System.out.print(" "); //count判断两个字母之间的空格
count+=2;
System.out.printf("%c\n",a[number%26]);
number++;
}
}
number-=2;count-=4;digit=1; //为打印下面的三角对各个参数设定
for(i=1;i<=n-1;i++){
for(j=1;j<=digit;j++)
System.out.print(" ");
digit++;
if(i==n-1){
System.out.printf("%c",a[number%26]);
number--;
}
else{
System.out.printf("%c",a[number%26]);
for(j=1;j<=count;j++){
System.out.print(" ");
}
System.out.printf("%c\n",a[number%26]);
number--;
count-=2;
}
}
}
}