杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
规律
1.每一行的头和尾值都是1
2.每一行的列数与行数一致
3.每列的值都等于上一行的是一列 + 上一行的当前列
思路:
将整个杨辉三角处理为一个二维数组 外层数组就表示整个杨辉三角 每一个内层数组表示每一行
public class HomeWork2 {
public static void main(String[] args) {
System.out.println("请输入行数");
int n = new Scanner(System.in).nextInt();
int[][] ints = pascalTra(n);
printPascal(ints);
}
public static int[][] pascalTra(int n) {
//创建表示杨辉三角的二维数组
int[][] pascal = new int[n][];
//为该二维数组创建n个数组作为元素
for (int i = 0; i < n; i++) {
//每一个内层数组的长度都与行数一致
int[] row = new int[i + 1];
for (int j = 0; j < row.length; j++) {
//如果是当前行的第一列或者最后一列,则 值为1
if (j == 0 || j == row.length - 1) {
row[j] = 1;
} else {
//如果不是第一列也不是最后一列 则当前列的值一定等于 上一行的上一列+上一 行的当前列
row[j] = pascal[i - 1][j] + pascal[i - 1][j - 1];
}
}
//代码执行到这里,说明当前行的每一个元素都被赋值了 将这个数组添加到pascal中
pascal[i] = row;
}
return pascal;
}
//打印数组
public static void printPascal(int[][] ints) {
for (int i = 0; i < ints.length; i++) {
for (int j = 0; j < ints[i].length; j++) {
System.out.print(ints[i][j] + "\t");
}
System.out.println();
}
}
}