题五:10行杨辉三角

这主要时处理空格,一个数字占6个空格,行首要输出一定数量的空格另外利用二维数组,知道这两点就好办了

免责声明:注意我就是随手一写,对算法效率有要求的慎用

/**
 * 5、打印杨辉三角形,10行,要求是正规的三角形
 */
public class Test5 {
    public static void main(String[] args) {
        int[][] array = new int[10][10];
        //第i行 第j列,先生成数据,再打印
        for(int i =0;i<10;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-1]+array[i-1][j];
                }
            }
        }

        //和上边分开,一个初始化数据,一个打印
        for(int i =0;i<10;i++) {
            printBlankByLine(i);
            for (int j = 0; j<=i; j++) {
                printByNumberCount(array[i][j]);
                if(j==i){
                    System.out.println();
                }
            }
        }
    }

    public static void printByNumberCount(int number){
        if(number<10){
            System.out.print("     "+number);
        }else if(number<100){
            System.out.print("    "+number);
        }else{
            System.out.print("   "+number);
        }
    }

    public static void printBlankByLine(int line){
        for(int j=8;j>=line;j--){
            System.out.print("   ");
        }
    }

}

 

posted @ 2018-05-07 18:10  剑握在手  阅读(379)  评论(0编辑  收藏  举报
返回顶部↑