java实现杨辉三角
首先杨辉三角的构成如下
通过分析能得出如下两个规律
1.第n行有n个元素,并且每一行的首尾元素都是1
1.中间的元素等于上面相邻的元素之和,用二维数组表示就是arr[i][j] = arr[i-1][j] + arr[i-1][j-1]
接下来就是实现动态开辟二维数组以此表示杨辉三角形
int level = myscanner.nextInt();//给level(控制层数)开辟空间int arr[][] = new int[level][];
注意:这里的二维数组与杨辉三角形的关系是,外层数组控制三角形行数,内层控制每行的元素,所以通过level可以实现输出任意层数的杨辉三角形。
这里在分析两层循环的作用:
//杨辉三角算法for(int i=0;i<arr.length;i++) { //外层遍历行数arr[i] = new int[i + 1]; //给每一行数组开辟空间for (int j = 0; j < arr[i].length; j++) {if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}
上面已经给外层行数开辟了动态空间,在遍历第一层循环的时候,再给每一行元素开辟空间,这里空间的大小通过规律: 第n行有n个元素,可知每行有(i+1)个元素因为i循环是从=0开始所以+1
arr[i] = new int[i + 1]; //给每一行数组开辟空间
然后就进入第二层循环主要控制每行元素的输出,由规律:每一行的首尾元素都是1,可知通过if语句,可以判断遍历的元素是否在第一个和最后一个位置。
if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;}
执行完if语句后通过else可以输出中间元素的值,而通过规律:中间的元素等于上面相邻的元素之和,可以用二维数组表示如下:
else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}
综上就是杨辉三角形的几大要点,总的代码如下:
import java.util.Scanner;
public class yanghui {public static void main(String[] args){Scanner myscanner = new Scanner(System.in);System.out.println("请输入杨辉三角的层数");int level = myscanner.nextInt();//给level(控制层数)开辟空间int arr[][] = new int[level][];//杨辉三角算法for(int i=0;i<arr.length;i++) { //外层遍历行数arr[i] = new int[i + 1]; //给每一行数组开辟空间for (int j = 0; j < arr[i].length; j++) {if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}//利用循环输出二维数组for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++) {System.out.print(arr[i][j]+"\t");}System.out.println(); //每遍历一层输出到下一行}}
}
然后运行效果如图:
java实现杨辉三角相关推荐
- java代码杨辉三角_用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角 ...
- php数组写杨辉三角java_用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角 ...
- Java打印杨辉三角
Java打印杨辉三角 打印杨辉三角首先要理清楚思路,找到其中的规律,,然后通过其中的规律用java循环的方法想办法解决掉.我们通过仔细的观察不难发现杨辉三角除每行最左侧和最右侧的数字外,每个数字等于它 ...
- Java实现杨辉三角的打印
Java打印杨辉三角的两种方式 方式1:打印直角三角形 //这里的行数可以修改为根据键盘输入获取 int row = 8;//杨辉三角的行数 int[][] arr = new int[row][ro ...
- Java之杨辉三角的实现
今天突然想温习一下Java的基础,想了想就写写杨辉三角吧 1.直接法,利用二维数组 1 import java.util.Scanner; 2 public class Second 3 { 4 pu ...
- Java 输出杨辉三角
今天在学习Java数组的时候,写了个杨辉三角的输出,只输出到前10行. 关键的内容在内部那个for循环上. 话不多说,直接上代码. public class YangHuiArray {public ...
- Java编程——杨辉三角(一)
杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代 ...
- 用Java实现杨辉三角
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1],[1, ...
- 【Java】 杨辉三角 二维数组打印杨辉三角
Tips 打印三角的操作 : 每行打印前预留空格 打印指定数量的星号后换行 重复循环打印直至完成所有打印结果 杨辉三角: 三角规律空格最大对称值为 5 大于 5 则会变形 三角规律为当前值为上一个值加 ...
- JAVA打印输出杨辉三角前n行_Java 打印n行杨辉三角数据
import java.util.Scanner; class T22 { public static void main(String[] args) { System.out.println(& ...
最新文章
- Java项目:网上选课系统(java+SSM+jsp+mysql+maven)
- ES聚合底层机制-bucket深的话采用广度优先更好,而如果是年度统计还是深度优先好...
- Shell Sort 希尔排序 收藏
- struct file 结构体
- 利用预渲染加速iOS设备的图像显示
- 今晚直播丨有备无患 - 达梦8的备份恢复
- Java多线程学习十二:悲观锁和乐观锁的本质||
- S5PV210 Uboot开发与移植03:Uboot启动流程详解
- Orabbix监控oracle
- 安卓nfs网络文件服务器,Linux网络文件服务器 NFS
- 搜狗浏览器数据备份/同步工具
- opencv特效编辑之雕刻效果
- app抓包工具_安卓APP逆向入门分析——破解某APP登陆请求参数
- Word中如何修改脚注的编号方式
- 经济应用文写作【11】
- Unity实现发光材质
- docker下载安装和常用命令
- PowerDesigner根据数据库生成数据字典
- Power BI(十三)Power pivot之工作日计算
- 液晶显示器原理和应用