杨辉三角的结构图如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
…
现在我们只用做一个层数为十的杨辉三角,首先我们可以发现这可以用二维数组先定义一个长度为10,宽度不断在变化的二维数组:int[][] arr = new int[] [];然后通过这些数我们可以发现一个规律,就是数组宽度不管咋变,它的第一个和最后一个都是零,而且下面的数组总是等于数组上面的前一个数加上后面一个数:arr[i][j]=arr[i-1][j-1]+arr[i][j-1];了解了这些规律之后我们就可以编写代码了。
代码如下:
private static void fun2() {
//定义一个长度为10的二维数组
int[][] arr = new int[10][];
for (int i = 0; i < arr.length; i++) {
//行数与个数的关系
arr[i] = new int[i+1];
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (j == 0 || j == arr[i].length - 1) {
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 j = 0; j < 10-i; j++) {
System.out.print(" “);
}
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+” ");
}
System.out.println();
}
}