1. 程式人生 > >java陣列學習:使用二維陣列輸出楊輝三角

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(); //注意格式
}


}
}

 顯示如下