输出字母金字塔

题目:

字母金字塔
输入一个数字n (2<n<50)表示层数,输出字母金字塔。
     A
   BAB
  CBABC
 DCBABCD
EDCBABCDE

思路如下:

假设数字是5,把5当做char数组长度,char数组里装入ABCDE,把char数组转成String,得到的字符串再转成char,最终输出EDCBABCDE,运行结果如图:

加一个while循环,控制层数,运行结果如图:

再加入输出的空格,运行结果如图:

最后加入键盘输入,while循环,异常处理。

代码如下:

package zuoye;

//2017.03.17 by小方
import java.util.Scanner;

public class F0317{
    public static void main(String[] args){
        while(true){
            try{
                Scanner scan=new Scanner(System.in);
                System.out.println("请您输入数字n(2<n<50),退出请按exid:");
                String s2=scan.nextLine().trim();
                if(s2.equals("exid")) break;
                int a=Integer.parseInt(s2);
                if(a<=2||a>=50) throw new Exception() ;
                
                int n=1;
                while(n<=a){
                    for(int j=0;j<a-n;j++)  
                    {  
                        System.out.print(" "); 
                    }  
                    char cc[]=new char[n];
                    for(int i=0;i<cc.length;i++){
                        cc[i]=(char)('A'+i);
                    }
                    String s = new String(cc);
                    for (int i = s.length()-1; i>=0 ;i--) {
                           System.out.print(s.charAt(i));
                     }
                    for(int i=1;i<s.length();i++){
                         System.out.print(s.charAt(i));
                    }
                    System.out.println();
                    n++;
                }
            }
            catch(Exception e){
                System.out.println("输入无效");
            }
        }
    }
}

最终运行结果如下: