杨辉三角特性:头上的值都为1,里面的值为两肩的和(上一行同等位置和上一行前一个位置的和),每一行数值的个数为行号
思路:定义一个二维数组,长度为杨辉三角的行数,每个二维数组的行数为行号,通过层for循环赋值,在外层循环中完成二维数组”列”的长度。内层循环判断赋值,如果是每行的两头就赋值为1,否则赋值为上一行同等位置和上一行前一个位置的和
public class Demo11 {
// 打印杨辉三角
public static void main(String[] args) {
//定义数组的行数
int[][] arr = new int[10][];
for (int i = 0; i < arr.length; i++) {
//定义每行数组的列数
arr[i] = new int[i + 1];
for (int j = 0; j <= i; j++) {
//判断赋值
if (j == 0 || j == i) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
//遍历输出
for (int i = 0; i < arr.length; i++) {
//打印空格
for (int k = 1; k <= 9 - i; k++) {
System.out.print(" ");
}
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}