1 问题描述
打印杨辉三角
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
分析:
-
a:如果是n行,那么最后一行是n列;
-
b:每一行的每一列和最后一列的元素是1
-
c:规律:从第三行开始的每一行的第二列开始到倒数第二列为止的数据是:
上一行的同一列的左一列的值+上一行的同一列的值 -
d:把二维数组组成[0,0,0],然后遍历即可
遍历的时候,注意模仿九九乘法表,否则会有很多0
执行代码
import java.util.Scanner;
class ArrayTest3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入打印多少行的杨辉三角: ");
int n = sc.nextInt();
int[][] arr = new int[n][n];
//每一行的第一列和最后一列的元素是1
for(int i = 0; i<n; i++){
arr[i][0] = 1;
arr[i][i] = 1;
}
//假设n是6
//从第三行开始
for(int i = 2; i<n;i++){
//i的最大值:5
//j的最大值: 4 = i最大值 -1
//从第二列开始到倒数第二列为止的数据值是:
// 上一行的同一列的左一列的值+上一行同一列的值
for(int j = 1; j<=i-1;j++){
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
//仿照99乘法表的遍历方式
for(int i = 0; i<arr.length;i++){
//i最大值:5
//j最大值: 5 = i最大值
for(int j = 0; j<=i;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println("");
}
}
}