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è)等腰三角形)。