欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用一个二维数组打印杨辉三角

程序员文章站 2024-03-21 20:03:34
...

使用一个二维数组打印杨辉三角,不多BB,上代码。

public class TestMain4 {
	
	public static void main(String[] args) {
		int[][]arr=new int[10][];
		for(int i=0;i<arr.length;i++){
			arr[i]=new int[i+1];
			arr[i][0]=arr[i][i]=1;
			for(int j=1;j<arr[i].length-1;j++){
				arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
			}			
		}
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}
}

代码其实很简单,就是刚接触算法这块,脑子有点转不过来,多想多练就好!此题大致分三个步骤。

  1. 先声明一个二维数组,此时可认为一维数组控制行数,二维数组控制列数。所以先将数组定义为int arr[][]=new int[10][];
  2. 给二维数组赋值,此步骤为重点。(不懂杨辉三角的可百度下),使用for循环给动态初始化数组赋值,每行的个数为i+1个,然后给每行的首末元素为1,所以arr[i][0]=arr[i][i]=1;,此时用二层循环给每行不是首末位的元素赋值,此数值等于该元素同列的上一行元素加该元素上一列元素左边的元素之和。故表达式可写为arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
  3. 使用二层for循环打印此二维数组!!!

这个题我做第一遍的的时候完全没有思路,就是难在赋值这块,不过敲个两遍把思路理清楚就很简单了!!END

相关标签: 练习