1. 程式人生 > >JAVA基礎(29)---二維陣列

JAVA基礎(29)---二維陣列

二維陣列

                              int[][]   陣列名稱  = new int[二維陣列的行數][二維陣列的列數];
                                                           1,2,3,4,5
                                                           2,3,4,6,7
                                                           2,3,4,5,7
                                          int[][]  arr = new  int[3][5];

初始化方式:靜態初始化 動態初始化
                      int[][]  arr = {{1,2,3,4,5},{2,3,4,6,7},{2,3,4,5,7}};
                      int[][]  arr = new int[][]{{1,2,3,4,5},{2,3,4,6,7},{2,3,4,5,7}};

 通過索引可以唯一的定位到一個元素

 二維陣列可以整體先看做是一個以行為大小的以為陣列,在這個一維陣列中,每一個元素又是一個一維陣列

楊輝三角

楊輝三角形性質:

每行數字左右對稱,由 1 開始逐漸變大,然後變小,回到 1。第 n 行的數字個數為 n 個,第 n 行數字和為 2^(n-1) 。每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角形。

第 n 行的第 1 個數為 1,第二個數為 1× (n-1) ,第三個數為 1× (n-1) × ( n-2) /2,第四個數為1× (n-1) × (n-2)/2× (n-3)/3…依此類推。

演算法原理:

使用一個二維陣列 yh[][] 儲存楊輝三角形的資料,行和列的大小為所需要輸出的行數 Row(本程式中 Row 為 10)。使用 for 迴圈使楊輝三角中除了最外層(不包括楊輝三角底邊)的數為 1 ;使用語句  yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j]  使第 i 行第  j  列的資料等於第(i-1) 行,第(j-1)列的資料與第(i-1)行第(j)列的資料之和,即每個數字等於上一行的左右兩個數字之和。每行前邊空格數的計算方式為:2 * (N -r)   N為總行數,認為當前第幾行。

public class YangHuiSanJiao{
	public static void main(String[] args){
		
		int[][] arr = new int[10][];
		for(int i = 1 ; i <=10 ; i++){
			arr[i - 1] = new int[i];
		}
		
		for(int j = 0 ; j < arr.length ;j++){
			
			arr[j][0] =  1;
			arr[j][arr[j].length -1] = 1;
		
		}
	//yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j]
		for(int k = 1 ; k < arr.length; k++ ){
			for(int h = 1 ; h < arr[k].length - 1 ; h++){
				arr[k][h] = arr[k-1][h-1] + arr[k-1][h];
			
			}
		}

		for(int m = 0 ; m < arr.length;m++){
			for(int n = 0 ; n < arr[m].length;n++){
			
				System.out.print(arr[m][n] +" ");
			}
			System.out.println();
		}
	
	
	
	}
}