package oop;
/**
*
* @author CZL
*
使用二维数组打印一个 10 行杨辉三角.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
....
【提示】
1. 第一行有 1 个元素, 第 n 行有 n 个元素
2. 每一行的第一个元素和最后一个元素都是 1
3. 从第三行开始, 对于非第一个元素和最后一个元素的元素.
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
*/
import java.util.Scanner;
public class ArrayPractice2 {
public static void main (String[] args) {
System.out.println("请输入需要打印的杨辉三角的行数:");
Scanner s = new Scanner(System.in);
int a = s.nextInt();
//1.定义一个二维数组存放杨辉三角。
int[][] YHSJ = new int[a][];
//2.将杨辉三角的每一行的元素都定义为0.
for(int i = 0; i < YHSJ.length; i++) {
YHSJ[i] = new int[i + 1];
}
//3.按照所给定的规律给每个元素赋值。
for(int j = 0; j < YHSJ.length; j++) { //控制行
for(int k = 0; k < YHSJ[j].length; k++) {//控制列
if(j < 2) { //第一、二两行所有与元素都赋值为 1。
YHSJ[j][k] = 1;
}else if(k == 0 || k == YHSJ[j].length-1 ){ //每行的第一个元素和最后一个元素值都赋为 1。
YHSJ[j][k] = 1;
}else {
YHSJ[j][k] = YHSJ[j - 1][k - 1] + YHSJ[j - 1][k];
}
System.out.print(YHSJ[j][k]+"\t");
}
System.out.println();
}
}
}