Java案例:实现杨辉三角

2023-11-05

Java案例:实现杨辉三角


前言

本篇文章我将讲述使用Java实现杨辉三角的实现,而且可以根据用户输入的正整数输出指定行数的杨辉三角。


一、杨辉三角是什么?

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
如果大家想要了解更多的详细信息,可以查看百度的相关解释以及其他的相关知识:链接如下:

图示如下:

杨辉三角图片

二、解题思路

  • 因为这个杨辉三角涉及到行与列,所以需要使用二维列表
  • 其次我们需要考虑杨辉三角的相关特性:
  • 首先每一行的第一个和最后一个元素都是1
  • 其次处于首尾之间的元素的值都是与同列的上一个元素和左上角的元素有关的,具体关系如下:
// arr为二维数组,i为行,j为列
arr1[i][j] = arr1[i - 1][j] + arr1[i - 1][j - 1];

三,代码实现

/*
	案例题目:
	根据用户输入的行数n输出对应行数的杨辉三角
*/

import java.util.Scanner;

public class ArrayTriTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入一个正整数行数
		System.out.println("请输入一个正整数的行数:");
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		
		// 2.申请一个二维数组
		int[][] arr1 = new int[num][];
		
		// 3.初始化二维数组
		for(int i = 0; i < arr1.length; i++) {
			arr1[i] = new int[i + 1];
			for(int j = 0; j < i + 1; j++) {
				if(0 == j || i == j) {
					arr1[i][0] = arr1[i][i] = 1;
				} else {
					arr1[i][j] = arr1[i - 1][j] + arr1[i - 1][j - 1];
				}
			}
		}
		
		System.out.println("\n========================================");
		// 4.打印输出二维数组的所有元素
		for(int i = 0; i < arr1.length; i++) {
			for(int j = 0; j < arr1[i].length; j++) {
				System.out.print(arr1[i][j] + "\t");
			}
			System.out.println();
		}
	}
}



总结

好了,到这里就已经用Java实现了杨辉三角的功能,如果有什么问题的小伙伴可以留言讨论,我们一起学习进步,记录Java的点点滴滴。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java案例:实现杨辉三角 的相关文章

  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons

随机推荐

  • 《重构 改善既有代码的设计 1》重构原则

    前言 重构 既有代码的设计 一本经典神书 两年前入手 一年前看了一半 感觉一般般 今天起 再次拜读 希望会有不一样的收获 startTime 2020 12 16 23 22 endTime 2020 12 16 23 59 startPa
  • 猜你喜欢-----推荐系统原理介绍

    写在正文之前 最近在做推荐系统 在项目组内做了一个分享 今天有些时间 就将逻辑梳理一遍 将ppt内容用文字沉淀下来 便于接下来对推荐系统的进一步研究 推荐系统确实是极度复杂 要走的路还很长 A First Glance 为什么需要推荐系统
  • Error:Cannot build artifact xxx:war exploded‘ because it is included into a circular dependency

    IDEA 项目报错 Error Cannot build artifact xxx war exploded because it is included into a circular dependency 解决 ctrl alt shi
  • unity android 在后台运行_Unity学习—资源管理概览

    本文介绍了 Unity 常用四种默认路径 以及 AssetDataBase Resources AssetBundle 和目前最新的 Addressable 四种资源管理方式 文中所有 API 均以版本 2019 3 为准 本文原地址 Un
  • 使用vue-json-viewer实现高亮展示、折叠和复制json数据

    最近项目上有个需求 就是在前端显示json格式的数据 并且提供展开和收起的按钮 先看一下最终完成的效果吧 在这里我使用了vue json viewer这个组件来实现这个效果 这个组件主要能实现高亮 json折叠和copy功能 能满足项目需求
  • Windows下的Memcache安装

    很多phper不知道如何在Windows下搭建Memcache的开发调试环境 最近个人也在研究Memcache 记录下自己安装搭建的过程 其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西
  • 【Matlab】数据插值

    数据插值 插值与拟合的区别 实现方法 插值要求曲线穿过样本点 而拟合不需要穿过样本点 只要求总体误差最小 结果形式 插值是分段逼近样本点 没有同一的逼近函数 函数拟合则用一个函数去逼近 有完整的表达式 侧重点 插值可以用于估计区间内某些点对
  • java实现webdav服务_访问WebDAV服务

    输入用户名和密码即可登录入服务器 使用类似ftp的命令就可以操作服务器上的文件 使用h命令可列出所有的命令 dav gt hAvailable commands ls cd pwd put get mget mput edit less m
  • LD 浅析 转

    原文地址 http www cnblogs com cjjnjust articles 1617086 html LD 浅析 转 本文乃转载 原作者的E mail是zhanglei sict ac cn 完成于2005 11 5 2005
  • Java之继承与多态

    目录 一 继承 1 为什么需要继承 2 继承概念 3 继承的语法 4 父类成员访问 1 子类中访问父类的成员变量 2 子类中访问父类的成员方法 5 super关键字 6 子类构造方法 7 super和this 8 再谈初始化 9 prote
  • 互联网的两大组成及其特点

    1 互联网由两大部分组成 边缘部分及其核心部分 2 边缘部分 主要由连接在互联网上的主机组成 这部分是直接与用户相连的 在边缘部分主要的活动是两个主机之间的通信 其通信方式可以分为两类 1 客户 服务器方式 就是客户机向服务器请求服务器 客
  • 14 openEuler DNF(YUM)配置管理

    文章目录 14 1 DNF配置文件 14 1 1 配置main部分 14 1 2 配置repository部分 14 1 3 显示当前配置 14 2 创建本地软件源仓库 14 3 添加 启用和禁用软件源 14 3 1 添加软件源 14 3
  • paste0函数在R语言中的应用

    paste0函数在R语言中的应用 在R语言中 paste0函数是一个非常有用的函数 它可以将多个输入组合成一个字符串 这个函数的使用非常简单 只需要将要组合的内容作为参数传递给paste0函数即可 在本文中 我们将通过实例来演示paste0
  • 全球及中国装备制造产业投资战略及产销需求预测报告2021-2027年版

    全球及中国装备制造产业投资战略及产销需求预测报告2021 2027年版 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年10月 搜索鸿晟信合研究院查看官网更多内容 第一章 装备制造业概述 1 1
  • Redraiment的走法

    题目描述 题目描述 Redraiment是走梅花桩的高手 Redraiment总是起点不限 从前到后 往高的桩子走 但走的步数最多 不知道为什么 你能替Redraiment研究他最多走的步数吗 样例输入 6 2 5 1 5 4 5 样例输出
  • LabVIEW结合神经网络在图像目标检测中的应用

    神经网络在图像识别中的应用 摘要 随着大数据时代的快速发展 图像识别技术的重要性与日俱增 大量的数据集和强大的服务器计算能力 更是如虎添翼 相比传统的图像分类方法已经无法满足用户对于对图像分类灵活性和速度上的要求 甚至在复杂环境下 传统算法
  • Mac下安装Metasploit

    今天鼓捣Metasploit在Mac上的安装 首先下载pkg文件 http osx metasploit com metasploitframework latest pkg 接着 cd opt metasploit framework b
  • picker多列可选

    npm install usui save import usui from usui Vue use usui this usui picker label 1 value 1 label 2 value 2 label 3 value
  • androidstudio 导入git问题 is under Git, but is not registered in the Settings

    从git项目第一次导入数据到本地可能会出现以上问题 1 针对此图 首先选择Configure 2 针对上图选择加号 然后选择指定的项目路径以及类型 点击OK apply
  • Java案例:实现杨辉三角

    Java案例 实现杨辉三角 前言 本篇文章我将讲述使用Java实现杨辉三角的实现 而且可以根据用户输入的正整数输出指定行数的杨辉三角 一 杨辉三角是什么 杨辉三角 是二项式系数在三角形中的一种几何排列 中国南宋数学家杨辉1261年所著的 详