要打印杨辉三角,得找出其中每一个元素和其他位置的元素之间的关系,对于一个二维数组来说。
非首元素和非最后一个元素,当前位置的值等于上一行同一列,加上上一行前一列的值。
即yanghui[i][j]=yanghui[i-1][j]+yanghui[i-1][j-1];
首元素是每一行的第一个元素,即每一行的第一列元素。最后一个元素是每个一维数组的最后一个元素,对应的列下角标就是yanghui[i].length-1,因为下角标是从0开始的嘛,所以要减去1。
知道以上的规律就可以用一个for循环嵌套打印出来了。
以下是源码:
public class YangHui
{
public static void main(String[] args)
{
int yanghui[][]=new int[10][];
for(int i=0;i<yanghui.length;i++)
{
yanghui[i]=new int[i+1]; /*yanghui[i]是二维数组当中的每个一维数组,没有定义二维数组的列数,是因为,杨辉三角的每一行
的元素个数不一样,所以需要对每一个一维数组进行开空间,不能将其已经定义好了
*/
for(int j=0;j<yanghui[i].length;j++)
{
if(j==0 || j==(yanghui[i].length)-1)
{
yanghui[i][j]=1;
}
else
{
yanghui[i][j]=yanghui[i-1][j]+yanghui[i-1][j-1];
}
}
}
System.out.println("10阶杨辉三角为:");
for(int i=0;i<yanghui.length;i++)
{
for(int j=0;j<yanghui[i].length;j++)
{
System.out.print(yanghui[i][j]+"\t"); //打印当前一维数组的值,每个元素不需要换行
}
System.out.println(); //内循环结束,打印下一个一维数组的值,需要换行
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/1194b3254042fc38b31fd56357de6f30.png)