请教哪位高人以下图形的算法用JAVA怎么实现?
                          A
                         B C
                        D E F
                         G H
                          I 

解决方案 »

  1.   

    再简单一点你就分成两个循环来写。public class Test {
        public static void main(String[] args) {
            final int row = 5;
            int ch = 'A';
            for (int i = 1; i <= row; ++i) {
                for (int j = 0; j < i && j <= row - i; ++j) {
                    System.out.print((char) (ch) + " ");
                    ch++;
                }
                
                System.out.println();
            }
        }
    }
      

  2.   

    和樓上的程式其實沒差多少,只是想說,這種漸增又漸減對稱的問題,蠻合適用絕對值來做。int maxWidth = 3;
        int max = maxWidth-1;
        char c = 'A';
        for(int i=-max; i<=max; i++){
            for(int j=0;j<=max-Math.abs(i);j++){
                System.out.print(c++ +" ");
            }
            System.out.println();
        }
      

  3.   


    /*这样的题目没有技术含量,java主要研究的是面向对象的。*/
    public class Ptest {
    public static void main (String[] args) {
    final int N = 5;
    int i,j;
    char c = 'A';
    for(i=0; i<N; i++){
    for(j=0; j<(N-2*Math.abs(N/2-i))/2+1; j++)
    {
    System.out.print(c++);
    }
    System.out.println();
    }
    }
    }
    结果:/*final int N = 5;*/
    A
    BC
    DEF
    GH
    I
    结果:/*final int N = 9;*/
    A
    BC
    DEF
    GHIJ
    KLMNO
    PQRS
    TUV
    WX
    Y
    public class Diamond {
    public static void main (String[] args) {
    int i,j;
    char c1 = ' ';
    char c2 = 'A';
    char c3 = 'P';
    for(i=0;i<9;i++){
    for(j=0;j<Math.abs(4-i);j++)
    {
    System.out.print(c1);
    }
    for(j=0;j<9-2*Math.abs(4-i);j++)
    {
    if(i<5) System.out.print(c2++);
    else System.out.print(c3--);
    }
    System.out.println();
    }
    }
    }
    结果:
        A
       BCD
      EFGHI
     JKLMNOP
    QRSTUVWXY
     PONMLKJ
      IHGFE
       DCB
        A
    public class Diamond {
    public static void main (String[] args) {
    int i,j;
    char c1 = 'A';
    char c2 = 'P';
    for(i=0; i<9; i++){
    for(j=0; j<9-2*Math.abs(4-i); j++)
    {
    if(i<5) System.out.print(c1++);
    else System.out.print(c2--);
    }
    System.out.println();
    }
    }
    }
    结果:
    A
    BCD
    EFGHI
    JKLMNOP
    QRSTUVWXY
    PONMLKJ
    IHGFE
    DCB
    A
    我感觉我在做数学题、、、
      

  4.   

    public static void main(String[] args) {
    char c='A';
    StringBuffer sb;
    for(int i=-2;i<=2;i++){//有多少行
    sb=new StringBuffer();
    for(int j=0;j<=2-Math.abs(i);j++){//每行有多少列
    sb.append(c++).append(" ");//没输出一次字符就自加1
    }
    System.out.println(sb);
    }
    }
      

  5.   

    public static void main(String[] args) {
    char c='A';
    StringBuffer sb;
    for(int i=-2;i<=2;i++){//有多少行
    sb=new StringBuffer();
    for(int j=0;j<=2-Math.abs(i);j++){//每行有多少列
    sb.append(c++).append(" ");//每输出一次字符就自加1
    }
    System.out.println(sb);
    }
    }