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


}
}

 显示如下

猜你喜欢

转载自www.cnblogs.com/chenyiwu/p/9985888.html