java陣列學習:使用二維陣列輸出楊輝三角
import java.util.Scanner;
/*
輸出二維陣列"楊輝三角"
i\j 0 1 2 3 4 5
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
5 1 5 10 10 5 1
....
分析一下陣列每個元素YangHui[i][j]的規則:
1,行的數量等於每行的元素數量, 行數=列數
2,每一行的第1個元素和末尾元素都是1
3,從第3行開始,“首個元素和末個元素之間”的每一個元素(i>1,0<j<i):
YangHui[i][j] = YangHui[i-1][j] + YangHui[i-1][j-1];
也就是:本元素=上一行本列元素+上一行前一列元素
*/
public class YangHui {
public static void main(String[] args) {
System.out.println("請輸入查詢前幾行以內的楊輝三角:");
Scanner s=new Scanner(System.in);
int num=s.nextInt();
int[][] YangHui=new int [num][]; //只定義了二維陣列的橫向長度,還需定義二維陣列的豎向長度
//而楊輝三角的豎向長度又是隨橫向長度變化而變化的
//初始化二維陣列
for(int i=0;i<YangHui.length;i++)
{
YangHui[i]=new int [i+1]; //定於楊輝三角的豎向長度,即陣列的第n行總共有n列。(需要轉幾個彎,語法格式及陣列長度)
}
//根據陣列元素的規則賦值
for(int i=0;i<YangHui.length;i++)
{
for(int j=0;j<YangHui[i].length;j++)
{
YangHui [i][0]=YangHui [i][i]=1; //定義了首尾的數值1
if(i>1&&j>0&&j<i) //定義了除了首位的數值(注意前提條件)
{YangHui[i][j]=YangHui[i-1][j-1]+YangHui[i-1][j];}
}
}
for(int i=0;i<YangHui.length;i++) //遍歷二維陣列
{
for(int j=0;j<YangHui[i].length;j++)
{
System.out.print(YangHui[i][j]+"\t"); //製表符
}
System.out.println(); //注意格式
}
}
}
顯示如下