package com.lanou.java02;
import java.util.Scanner;
public class HomeworkYangHui {
public static void main(String[] args) {
/*
* 1、首先我要一个二维的数组来显示杨辉三角
*
* */
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int[ ] [ ] yh = new int[row][];
/*
* 1、第一行,只有一个1
* 2、第二行,只有两个1和上一行没有任何的关系
* 3、第三行,其中第二个元素等于第二行第一个元素加上第二行的第二个元素
* 4、第四行,其中第二个元素等于第三行的第一个元素加上第三行的第二个元素
* 其中第三个元素等于第三行的第二个元素加上第三行的第三个元素
* 5、第i行,其中第j个元素等于第i-1行第j-1个元素加上第i-1行的第j个元素
* 6、所有行的开始,和结尾均是一
* 关键代码:第一行的元素和第二行的元素比较特殊没有办法直接通过公式
* (会报出空指针异常错误 NullPointer)
* 因为是二维数组,所以一定要用到两个for的嵌套
* 但是本题,不是数组的遍历,而是数组的赋值
* */
for(int i = 0 ; i < yh.length ; i++){
int[ ] col = new int [i + 1]; // i + 1为长度
col [0] = 1;
col [i] = 1;
if (i >= 2){
for( int j = 1; j < i ; j++){
col[ j ] = yh[i-1][j-1] + yh[i-1][j];
}
}
yh[i] = col;
}
for(int i = 0; i < yh.length; i++){
for(int z = 0; z <= yh.length – i; z++){
System.out.print(” “);
}
for(int j = 0; j < yh[i].length; j++){
System.out.print(yh[i][j] + ” “);
}
System.out.println();
}
}
}