输出字母金字塔
题目:
字母金字塔
输入一个数字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("输入无效"); } } } }
最终运行结果如下: