注册 登录
编程论坛 JAVA论坛

简单的杨辉三角,语法不抱错,但编译通过不了。求大神指点~~~

博北A209 发布于 2015-06-25 00:22, 634 次点击
程序代码:
package Lianxi;

public class LianXi14YangHuiSanJiao {

    /**
     * @param args
     */
    public static void main(String[] args) {
        final int N = 10;
        int array[][] = new int [N][];
        for (int i = 0; i < N; i++) {
            array[i] = new int[i];//定义该层数组大小
            for (int j = 0; j <= i; j++) {
                if ((j == 0)||(j == i)) {
                    array[i][j] = 1;
                }else {
                    array[i][j] = array[i-1][j] + array[i-1][j-1];
                }
            }
        }
        //打印出数组
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                System.out.println(array[i][j]+" ");
            }
        }
    }

}
4 回复
#2
林月儿2015-06-25 08:08
for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                System.out.println(array[i][j]+" ");
            }
        }
内循环打印完不换行?
#3
calix2015-06-25 08:59

程序代码:
首先数组长度不对
array[i] = new int[i];改成array[i] = new int[i+1];
其次内层循环边界有问题
for (int i = 0; i < array.length; i++) {
    for (int j = 0; j < array.length; j++) {
        System.out.println(array[i][j]+" ");
    }
}
改为
for (int i = 0; i < array.length; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(array[i][j] + "\t");//用制表符看起来更整齐点
    }
    System.out.println();//每次内层循环完毕再换行
}

#4
凌风zx2015-06-25 11:16
package lianxi;

public class LianXi14YangHuiSanJiao {

    /**
     * @param args
     */
    public static void main(String[] args) {
        final int N = 10;
        int array[][] = new int [N][];
        for (int i = 0; i < N; i++) {
            array[i] = new int[i+1];//定义该层数组大小-------int[] 里面是长度i=0的话就不能存了
            for (int j = 0; j <= i; j++) {
                if ((j == 0)||(j == i)) {
                    array[i][j] = 1;
                }else {
                    array[i][j] = array[i-1][j] + array[i-1][j-1];
                }
            }
        }
        //打印出数组
        for (int i = 0; i < array.length; i++) {
            /**
             * 打印前面的括号
             */
            for(int k=array.length-i;k>0;k--){
                System.out.print(" ");
            }
               
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();//单纯换行
        }
    }

}
#5
博北A2092015-06-25 21:23
非常感谢各位,昨晚学到很晚编的。。脑子都昏了~~~~
1