杨辉三角



public class 杨辉三角 {
	public static void main(String[] args) {
		// M1();
		// M2();
		M3();

	}

	private static void M3() { // 最优解
		int[][] iArray = new int[10][];
		for (int i = 0; i < 10; i++) {
			iArray[i] = new int[i + 1];
			for (int k = 9; k > i; k--) {
				System.out.print("  ");
			}
			for (int j = 0; j <= i; j++) {
				if (j == 0 || j == i) {
					iArray[i][j] = 1;
					System.out.print(iArray[i][j] + "   ");
				} else {
					iArray[i][j] = iArray[i - 1][j] + iArray[i - 1][j - 1];
					System.out.print(iArray[i][j] + "   ");
				}

			}
			System.out.println();// 换行
		}
	}

	private static void M2() {
		int[][] pas = new int[8][8];

		for (int i = 0; i < pas.length; i++) {
			pas[i][0] = 1;
			pas[i][i] = 1;

			for (int j = 1; j < i; j++) {
				pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j];
			}
		}
		for (int i = 0; i < pas.length; i++) {
			for (int j = 0; j <= i; j++) {
				System.out.print(String.format("%-5d", pas[i][j]));

			}
			System.out.println(" ");
		}
	}

	private static void M1() {
		int n = 8;
		int[][] arr = new int[n][n];
		for (int i = 0; i < arr.length; i++) {
			for (int k = arr.length; k > i; k--) {
				System.out.print(" ");

			}
			for (int j = 0; j < i; j++) {

				if (i == j || j == 0) {
					arr[i][j] = 1;
					System.out.print(arr[i][j] + " ");
				} else {
					arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
					System.out.print(arr[i][j] + " ");
				}
			}
			System.out.println();
		}
	}

}

原文地址:https://www.cnblogs.com/dgwblog/p/7887640.html