int n = 5;
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j || i == 0 || j == 0) {
arr[i][j]=1;
}else {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
解决这个问题线分析特点
观察后可以从以下几个方面入手
1、这是一个二维数组
除了每行的1每个数都等于上面与他对应的的数和前面数的和
所以这题可以先输出一个二维数组,
对第一行进行直接赋值之后,通过循环输出
根据特性二就有
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
其中i相当于x,j相当于y
j-1不仅能计算中间的数值,也嫩让前后两个符合规定就可以i完美解决这个问题