Java编写杨辉三角

本文介绍了如何使用Java编程实现杨辉三角,详细讲解了创建不同长度的二维数组、初始值赋值、计算过程以及实现等腰效果的步骤,并提供了最终代码,支持用户输入控制行数和列数。
摘要由CSDN通过智能技术生成

前言

何为杨辉三角?
在这里插入图片描述

  • 每个数等于它上方两数之和。
  • 每位数字左右对称,由1开始逐渐变大。
  • 第n行有n项。

实现过程:以5行5列的等腰三角为例推导

1.创建多个不同长度的二位数组

1.1 五行五列的直角三角形,需要注意数组的下标比行数小1。
1.2 每一行的个数逐渐加一,即二位数组的低维下标依次加一,往每行分配空间。yh[i]表示高维数组。yh[0]=new int[1];往第一行分配1个存储空间,依次继续则第四行分配5个存储空间。
示意图:

//0
//00
//000
//0000
//00000
int rows=5;
int[][] yh=new int[rows][];
for(int i=0;i<rows;i++){
   //创建多个不同长度的二位数组
	yh[i]=new int[i+1];
}

2.完成初始值赋值

2.1 循环每一行,小于高维数组的长度即可,从第一行开始到第五行。
2.2 为每一行前尾都赋值1,可观察到第几行就有第几个数值。例如:第四行的第一位数表示为yh[3][0]=1,最后位数为yh[3][3]=1。则循环行数就能完成赋值。
示意图:

	//1 
	//11
	//101
	//1001
	//10001
for(int i=0;i<yh.length;i++){
   //完成赋值
			yh[i][0]=1;
			yh[i][i]=1;
}

3.计算

3.1 循环遍历二维数组,i表示行数,j表示列数,高维数组的长度为yh.length,低维数组的长度为yh[i].length。但是若内层循环使用yh[i].length,会使数组下标越界,例如当循环到第三行i=2时,会循环三次101,到尾部的1时会将第二行的第二位数与第二行第三位数相加,但是并没有第二行第三位数字。再观察第四行计算两次就行,所以内部循环的条件从1开始的话小于i则可,第五行时从第二列开始内部循环到第四列就行。
3.2 步骤2中的所有为0的数值,需要进行计算。以第三行第二列的2计算为例,它的值为第二行第一列数值+第二行第二列的数值。yh[i][j]=yh[i-1][j]+yh[i-1][j-1]
3.3 行数从第三行开始此时i=2(其余位置的已被步骤2赋值为1),列数从第二列开始此时j=1。
示意图:

	//1                                           //1
	//11                                          //11
	//101                                         //121
	//1001                                        //1331
	//10001                                       //14641										
for(int i=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值