本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。
输入格式:
输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。
输出格式:
输出空心字符菱形。
输入样例:
B 5
输出样例:
B
C C
D D
C C
B
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char w=in.next().charAt(0);
int n=in.nextInt();
String[] w1=new String[n];
int mid=(n-1)/2;
int s=mid-1;
for(int i=0;i<mid+1;i++){
w1[i]=(char)(w+i)+"";
for(int j=i*2;j>0;j--){
if(j==1){
w1[i]+=(char)(w+i)+"";
}else{
w1[i]+=" ";
}
}
}
for(int i=mid+1;i<n;i++){
w1[i]=(char)(w+s)+"";
for(int j=s*2;j>0;j--){
if(j==1){
w1[i]+=(char)(w+s)+"";
}else{
w1[i]+=" ";
}
}
s--;
}
s=mid-1;
for(int i=0;i<mid+1;i++){
for(int j=mid-1-i;j>=0;j--){
System.out.print(" ");
}
System.out.println(w1[i]);
}
for(int i=mid+1;i<n;i++){
for(int j=mid-1-s;j>=0;j--){
System.out.print(" ");
}
s--;
System.out.print(w1[i]);
if(i==n-1){
break;
}
System.out.println();
}
}
}