输入描述 输入一个大写字母与一个整数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; } } } }