java打印杨辉三角

package com.dylan.practice.interview;

/**
 * 打印杨辉三角
 *
 * 原理
 * 1.每个数等于它上方两数之和
 * 2.第n行的数字有n个
 *
 * @author xusucheng
 * @create 2018-03-06
 **/
public class YangHuiTriangle {
    public static void main(String[] args) {
        print(10);
    }

    public static void print(int n) {
        int[][] a = new int[n][n];

        for (int i = 0; i < n; i++) {
            //格式化输出
            System.out.format("%" + (n - i) * 2 + "s", "");
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    a[i][j] = 1;
                } else {
                    a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                }

                System.out.format("%4d", a[i][j]);
            }

            System.out.println();
        }
    }
}


输出:

                       1
                     1   1
                   1   2   1
                 1   3   3   1
               1   4   6   4   1
             1   5  10  10   5   1
           1   6  15  20  15   6   1
         1   7  21  35  35  21   7   1
       1   8  28  56  70  56  28   8   1
     1   9  36  84 126 126  84  36   9   1



你可能感兴趣的:(杨辉三角,Java-Core,Java面试题,Java,Core)