输入一个大写的英文字母,输出空心的字母金字塔。
一个大写英文字母。
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
E
A
B B
C C
D D
EEEEEEEEE
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner sc=new Scanner(System.in); 5 String s=sc.next(); 6 char letter=s.charAt(0); 7 for(int i=1;i<=(int)letter-‘A‘+1;i++){ 8 for(int j=40-i;j>=1;j--){ 9 System.out.print(" "); 10 }//字母前空格 11 System.out.print((char)(‘A‘-1+i)); 12 if(i!=1&&i!=(int)letter-‘A‘+1){ 13 for(int j=2;j<2*i-1;j++){//绕 14 System.out.print(" ");//字母间空格 15 } 16 } 17 else{ 18 if(i!=1){ 19 for(int j=1;j<2*i-2;j++){//绕 20 System.out.print((char)(‘A‘-1+i)); 21 } 22 } 23 } 24 if(i!=1)System.out.println((char)(‘A‘-1+i)); 25 else System.out.println(); 26 } 27 } 28 }
题目看起来不难,找规律。
for循环的判断条件需要想一想。
但觉得自己的写的比较复杂,非最简代码,待优化。
原文:https://www.cnblogs.com/Flyfishy/p/12270911.html