打印杨辉三角
何为杨辉三角
一道简单的杨辉三角算法题,看了一下网上的代码,下来自己也写了一下。
分析图像:
- 每一行的第一列和最后一列都是1
- 从第三行开始,每一行的i的值为上一行j-1与j的和
例如5=4+1;126=56+70。
步骤:
-
首先创建一个十行的二维数组,
int[][] yanghui=new int[10][];
-
给二维数组赋值,将每一列第一个和最后一个赋值为1,
yanghui[i][0]=yanghui[i][i]=1;
-
再将第三行开始的所有值进行赋值操作
for(int j=1;j<yanghui[i].length-1;j++) {
yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
}
- 然后遍历整个数组
完整代码
public static void arr2() {
//1.声明
int[][] yanghui=new int[10][10];
//2.赋值
for(int i=0;i<yanghui.length;i++) {
yanghui[i]=new int[i+1];
yanghui[i][0]=yanghui[i][i]=1;
if(i>1) {
for(int j=1;j<yanghui[i].length-1;j++) {
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();
}
}