使用二维数组打印一个10行的杨辉三角 :
1.第一行有1个元素,第n行有n个元素
2. 每行第一个元素和最后一个元素都是1 *
3.第三行开始,对于非第一个元素和最后一个元素的元素有如下关系:
a[ i ][ j ] = a[ i-1 ][ j-1 ]+a[ i-1 ][ j ];如图
public class Review {
public static void main(String[] args) {
int [][] a= new int[10][];//初始化一个十行的二维数组,由于每列的列数不同,暂时无法确定,因此第二个[]内暂时不写;
for(int i =0;i<10;i++) {
a[i] = new int[i+1];//对内层数组初始化,规律可从图中分析发现,内层数组个数等于外层数组个数+1,即第0行有1个元素,第1行有两个元素
a[i][0]=a[i][i]=1;//每行第一个元素和最后一个元素为1
for(int j=1; j<a[i].length-1;j++) {//开始对内层除首尾为1以外的元素赋值
a[i][j] = a[i-1][j-1]+a[i-1][j];//这里是杨辉三角的关系式
}
for(int j = 0; j<a[i].length;j++) {//开始遍历二维数组,输出元素
System.out.print(a[i][j]+" ");
}System.out.println();//每遍历完一轮内层循环(即完整的一行),输出回车
}
}
}
本题注意要点在于:二维数组初始化时,内层数组个数不确定,因此暂不赋值,而再后边需要调用内层数组时,需要先new二维数组,否则二维数组为空;