Java使用二维数组实现杨辉三角算法
运行后截图:
其中,二维数组的元素10可以自定,可以直接在数组创建上修改,也可以用Scanner让用户输入再接收
代码如下:
public class YangHui{
public static void main(String[] args){
//先创建一个二维数组,二维数组的元素定义一个10--表示10层的三角
//因为每行的长度不一,j行先留空
int[][] arr = new int[10][];
int i, j;
for(i = 0; i < arr.length; i++){//遍历二维数组中的每个元素
//为他们的每个元素都创建一个新的空间
arr[i] = new int[i + 1];
//为二维数组的每个空间都赋值
//
//杨辉三角的规律是每行的第一个数和最后一个数都为1
//每行中间的数等于上一行同列的数+上一行上一列的数
//即:arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
//
//1
//1 1
//1 2 1
//1 3 3 1
//1 4 6 4 1
//...
//...
for(j = 0; j < arr[i].length; j++){
if(j == 0 || j == i){//当j == 0即第一位,当j == i即最后一位
arr[i][j] = 1;//给他赋值上1
}else{//其他情况就是中间数的情况
//i-1代表上一行,j不动代表同列 i-1代表上一行,j-1代表上一列
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
//最后输出
System.out.print(arr[i][j] + " ");
}
System.out.println();//每输出一行我们进行换行
}
}
}