public class YangHuiTest { public static void main(String[] args) { //1.声明并初始化二维数组 int[][]yangHui=new int[10][]; //2.给数组的元素赋值 for(int i=0;i<yangHui.length;i++)//这里的数组长度yangHui.length==10 { yangHui[i]=new int [i+1];//做了这个就构建好了数组框架,第0行有1个元素,第1行有2个元素~第9行有10个元素 //在构建内层的一维数组,这里的i+1是元素个数。 //=============================分割 //这里的前前置任务应该是3。后置任务为2.1 //2.1给首末元素赋值 yangHui[i][0]=1;//得写全,不能只写yangHui[i]=1; yangHui[i][i]=1; //2.2给每行的非首末元素赋值 if(i>1) { for(int j=1;j<yangHui[i].length-1;j++)//这里写j<i也是一样,但是这是应为这里正好是三角形,所以刚好相等。 //按照逻辑上应该就写j<yangHui[i].length-1 { yangHui[i][j]=yangHui[i-1][j-1]+yangHui[i-1][j]; } } } //3.遍历二维数组 for(int i=0;i<yangHui.length;i++) { for(int j=0;j<yangHui[i].length;j++)//这里内层数组的长度是变化的。 { System.out.print(yangHui[i][j]+" "); } System.out.println(); } } }