您的位置:首页 > 编程语言 > Java开发

java数组学习:使用二维数组输出杨辉三角

2018-11-19 21:41 302 查看

 

[code]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];
    也就是:本元素=上一行本列元素+上一行前一列元素
*/

import java.util.Scanner;

public class YangHui {
public static void main(String[] args) {
System.out.println("请输入__行内的杨辉三角");
Scanner s =new Scanner(System.in);
int num=s.nextInt();
//1.初始化杨辉三角数组
int[][] YangHui=new int[num][];			//初始化二维数组横向长度
for(int i=0;i<YangHui.length;i++)
{
//错误点:YangHui[i]=new int[YangHui[i].length];因为其竖向长度未定义,却引用
//错误点: YangHui[i]=new int[i];
//需要指定数组的长度,数组初始从0开始,并非数组长度值,需+1
YangHui[i]=new int[i+1];				//初始化二维数组竖向长度
//2.数组赋值
for(int j=0;j<YangHui[i].length;j++)
{
//注意j<i的条件,因为尾巴的数值为1  切勿赋值覆盖
//j>0,因为首的数值为1,切勿赋值覆盖
//i>1,因为i=0&i=1,没有中间值
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];}
}
}
//3.遍历杨辉三角二维数组
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();
}

}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐