public class Yanghui  {
public static void main(String[] args) {
int a[][] = new int[8][8];
        for (int i = 0;i < 6 ; i++ ){
a[i]=new int[i+1];
for (int j = 0;j < i+1 ;j++ ){
if (i<=1||j==0){
a[i][j]=1;
System.out.print(a[i][j]);
}
else if(i>1&&j>=1){
a[i][j] = a[i-1][j-1] + a[i-1][j];
System.out.print(a[i][j]);
}
}
System.out.println();
        } 
}
}

解决方案 »

  1.   

    一步一步的做,不要把所有的东西都放在一起
    public class Hello {
        public static void main(String[] args) throws Exception {
            final int len = 8;
            int a[][] = new int[len][len];        for (int i = 0; i < len; ++i) {
                a[i][0] = a[i][i] = 1;
            }        for (int i = 2; i < len; ++i) {
                for (int j = 1; j < i; ++j) {
                    a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                }
            }        for (int i = 0; i < len; ++i) {
                for (int j = 0; j <= i; ++j) {
                    System.out.print(a[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
      

  2.   

    这是我以前用的另外一种方法。以前做的。
    2楼的说的很不错。
    int[] yh = { 1, 0, 0, 0, 0, 0, 0, 0, 0 };
    int[] yh1 = new int[9];// 新建一行的杨辉数组
    yh1[0] = 1;// 第一行永远是1
    System.out.println(1);
    for (int i = 1; i < yh.length; i++) {
    for (int j = 1; j <= i; j++) {
    yh1[j] = yh[j] + yh[j - 1];// 让新行的数据=旧行的同行+前一列的数据
    }
    for (int j = 0; j <= i; j++) {
    System.out.printf("%-4d", yh1[j]);// 打印数据
    }
    for (int j = 0; j < yh1.length; j++) {
    yh[j] = yh1[j];// 复制新行数据到旧行(旧行是新行的计算条件)
    }
    System.out.println();
    }