2017年計(jì)算機(jī)二級(jí)考試java章節(jié)輔導(dǎo):二維數(shù)組應(yīng)用

字號(hào):


     5.2.4 二維數(shù)組應(yīng)用
     1.二維數(shù)組元素的遍歷
     在一維數(shù)組中,遍歷數(shù)組元素使用如下語(yǔ)句:
     for(int i=0;i   System.out.println(a[i]);
     }
     在二維數(shù)組中可以使用如下語(yǔ)句遍歷數(shù)組元素:
     for(int i=0;i   for(int j=0;j   System.out.print(a[i][j]+'\n');
     }
     System.out.println();
     }
     特別注意,因?yàn)樵诙S數(shù)組中存在不規(guī)則數(shù)組的情況,所以在訪問時(shí)需要使用a[i].length的方式來限定二維數(shù)組第二維的元素個(gè)數(shù),否則會(huì)發(fā)生數(shù)組下標(biāo)異常錯(cuò)誤。
     2.利用不規(guī)則數(shù)組實(shí)現(xiàn)楊輝三角形
     楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。其形式如下:
     1
     1 1
     1 2 1
     1 3 3 1
     1 4 6 4 1
     我們可以利用java的不規(guī)則數(shù)組來存儲(chǔ)這些信息,其運(yùn)算規(guī)律為: a[m][n]=a[m-1][n-1]+a[m-1][n];當(dāng)m=n或者n=0時(shí),楊輝三角形的元素a[m][n]=1;否則,楊輝三角形的元素a[m,n]=a[m-1,n-1]+a[m-1,n] 。其中,m,n為三角形的行和列,均從0開始。
     程序如下:
     [例5-12]
     class YangHui {
     public void paint(int n){//輸出楊輝三角形的值,n為行數(shù)
     int a[][]=new int[n][];
     for(int i=0;i   a[i]=new int[i+1];//定義不規(guī)則數(shù)組
     }
     for(int i=0;i   for(int j=0;j   if(i==j||j==0){
     a[i][j]=1;
     }
     else
     a[i][j]=a[i-1][j-1]+a[i-1][j];
     }
     }
     //不規(guī)則數(shù)組的輸出
     for(int i=0;i   for(int j=0;j   System.out.print(a[i][j]+" ");
     }
     System.out.println();//輸出換行
     }
     }
     }
     public class Test5_12 {
     public static void main(String[] args) {
     YangHui yh = new YangHui();
     yh.paint(10);
     }
     }
     運(yùn)行結(jié)果如下:
     1
     1 1
     1 2 1
     1 3 3 1
     1 4 6 4 1
     1 5 10 10 5 1
     1 6 15 20 15 6 1
     1 7 21 35 35 21 7 1
     1 8 28 56 70 56 28 8 1
     1 9 36 84 126 126 84 36 9 1
     讀者可以通過yh.paint(n)的方式很方便的輸出具有n行楊輝三角形的數(shù)據(jù)。讀者也可以試著修改例[5-12]讓其顯示效果更好(如顯示效果為一個(gè)等腰三角形)。