【题目】
如【图1.png】,我国南宋数学家杨辉1261年所著的《详解九章算法》一书里就出现了。
其排列规律:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
如下的程序,用来建立N行的杨辉三角形。请填写划线部分缺少的代码。
注意:只填写划线部分的代码,不要填写任何多余的内容。
public class A
{
public static void main(String[] args)
{
int N = 8;
int[][] a = new int[N][N] ;
for(int i=0; i<N; i++){
a[i][0] = 1;
a[i][i] = 1;
}
for(int i=1; i<N; i++){
for(int j=1; j<i; j++) _____________________________; //填空
}
for(int i=0; i<N; i++){
for(int j=0; j<=i; j++)System.out.print(String.format(“%-5d”, a[i][j]));
System.out.println();
}
}
}
【解释】
public class A
{
public static void main(String[] args)
{
//对行数的限制
int N = 8;
//定义一个二维数组
//解释:
数据类型[][] 数组名=new 数据类型[二维数组的长度/包含的一维数组的个数][每一个一维数组的长度]
int[][] arr = new int[3][5];—定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
int[][] a = new int[N][N] ;
//循环给值,三个一维数组中,每一维数组的索引为[0]的赋值为1,最后一个赋值为1
for(int i=0; i<N; i++){
a[i][0] = 1;
a[i][i] = 1;
}
//赋值
for(int i=1; i<N; i++){
//第二层循环从一开始,循环条件为就J<1
for(int j=1; j<i; j++) {
//当前的数 上面的数+上面的数的前面
Arr[i][j]==arr[i-1][j]+arr[i-1][j-1]
} //填空
}
//遍历出数字
for(int i=0; i<N; i++){
for(int j=0; j<=i; j++)System.out.print(String.format(“%-5d”, a[i][j]));
System.out.println();
}
}
}
【结果】
Arr[i][j]==arr[i-1][j]+arr[i-1][j-1]