黑马程序员技术交流社区

标题: Java 打印 字母金字塔 [打印本页]

作者: ContainsM    时间: 2016-1-17 17:10
标题: Java 打印 字母金字塔

  1. 代码:
  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 char c = 'A';
  5.                 StringBuilder bu = null;
  6.                 StringBuilder re = new StringBuilder();
  7.                 for (int i = 0; i < 26; i++) {
  8.                         bu = new StringBuilder();
  9.                         for (int j = 0; j <= i; j++) {
  10.                                 bu.append((char) (c + j));
  11.                         }
  12.                         for (int x = 0; x < 26 - i; x++) {
  13.                                 re.append("  ");
  14.                         }
  15.                         re.append(bu).append(bu.reverse().substring(1)).append("\r\n");
  16.                 }
  17.                 System.out.println(re);
  18.         }
复制代码

打印结果:
                                                    A
                                                  ABA
                                                ABCBA
                                              ABCDCBA
                                            ABCDEDCBA
                                          ABCDEFEDCBA
                                        ABCDEFGFEDCBA
                                      ABCDEFGHGFEDCBA
                                    ABCDEFGHIHGFEDCBA
                                  ABCDEFGHIJIHGFEDCBA
                                ABCDEFGHIJKJIHGFEDCBA
                              ABCDEFGHIJKLKJIHGFEDCBA
                            ABCDEFGHIJKLMLKJIHGFEDCBA
                          ABCDEFGHIJKLMNMLKJIHGFEDCBA
                        ABCDEFGHIJKLMNONMLKJIHGFEDCBA
                      ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA
                    ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA
                  ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA
                ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA
              ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA
            ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA
          ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA
        ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA
      ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA
    ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA
  ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA
作者: 宋达思    时间: 2016-1-17 18:17
不错啊,想的很好啊,刚开始我看了半天,直到查了下API,又看了循环后的两行,才明白原理。虽然还是打印等腰三角形的老例子,但是使用了StringBuilder,数据类型的自动转型,强转,取子串最有亮点,挺好!
作者: ContainsM    时间: 2016-1-18 16:29
宋达思 发表于 2016-1-17 18:17
不错啊,想的很好啊,刚开始我看了半天,直到查了下API,又看了循环后的两行,才明白原理。虽然还是打印等 ...

有交流群吗? 发一个呗。
作者: olivec    时间: 2016-1-22 16:54
public class Test1 {

        public static void main(String[] args) {
                for (int i = 0; i < 26; i++) {
                        for (int j = 0; j < 26-1-i; j++) {
                                System.out.print(" ");
                        }
                        print(i,0);
                        System.out.println();
                }
        }
        public static void print(int n,int index){
                if(index<=n){
                        int position=(int)'A'+index;
                        System.out.print((char)(position));
                        print(n,index+1);
                        if(position!=(int)'A'+n)
                                System.out.print((char)(position));
                }
                else{
                        return;
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2