Java,输出一个10行的杨辉三角

news2024/12/23 22:33:37

        据图可以发现,杨辉三角是每行的首元素和末元素都为1,中间的元素都是等于它上面的元素加上左上角的元素。

        首先,先完成二数组的创建和初始化,第一行的长度为一,第二行的长度为二……以此类推。所以,外元素的初始化可以用循环来创建。

//1.创建二维数组
int[][] yangHui = new int[10][];
//2.使用循环,初始化外层数组元素
for (int i = 0; i < yangHui.length; i++)
{
    yangHui[i] = new int[i + 1];
}

        i是从0开始的,所以要加一,对应相应的外层元素的长度。

        然后,给杨辉三角的首末元素赋值为1.

//3.给数组首末元素赋值
for (int i = 0; i < yangHui.length; i++)
{
    for (int j = 0; j < yangHui[i].length; j++)
    {
        if((j == 0) || (j == yangHui[i].length - 1))
        {
            yangHui[i][j] = 1;
        }
    }
}

        接着就是非首末部分的赋值。

//4.给每行非首末元素赋值
for (int i = 0; i < yangHui.length; i++)
{
    for (int j = 0; j < yangHui[i].length; j++)
    {
        if(j != 0 && j != yangHui[i].length - 1)
        {
            yangHui[i][j] = yangHui[i - 1][j] + yangHui[i - 1][j - 1];//每个元素等于它的上一个元素加上左上角的元素
        }
    }
}

        最后代码如下所示:

class exercise
{
    public static void main(String[] args)
    {
        //杨辉三角

        //1.创建二维数组
        int[][] yangHui = new int[10][];
        //2.使用循环,初始化外层数组元素
        for (int i = 0; i < yangHui.length; i++)
        {
            yangHui[i] = new int[i + 1];
        }
        //3.给数组首末元素赋值
        for (int i = 0; i < yangHui.length; i++)
        {
            for (int j = 0; j < yangHui[i].length; j++)
            {
                if((j == 0) || (j == yangHui[i].length - 1))
                {
                    yangHui[i][j] = 1;
                }
            }
        }
        //4.给每行非首末元素赋值
        for (int i = 0; i < yangHui.length; i++)
        {
            for (int j = 0; j < yangHui[i].length; j++)
            {
                if(j != 0 && j != yangHui[i].length - 1)
                {
                    yangHui[i][j] = yangHui[i - 1][j] + yangHui[i - 1][j - 1];//每个元素等于它的上一个元素加上左上角的元素
                }
            }
        }
        //遍历二维数组
        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();
        }
    }
}

 输出如图所示:

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1119186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音热搜榜:引领潮流,展现自我

在信息爆炸的时代&#xff0c;人们追求快速、碎片化的信息获取方式&#xff0c;而短视频平台正是满足了这一需求。抖音作为其中的佼佼者&#xff0c;以其独特的魅力吸引了越来越多的用户。每天&#xff0c;数以亿计的用户在抖音上创作、分享、浏览各种短视频&#xff0c;形成了…

【数据结构】【C语言】【环形链表约瑟夫问题】

1.问题描述及背景&#xff1a; 著名的Josephus问题 据说著名犹太 历史学家 Josephus有过以下的故事&#xff1a;在罗⻢⼈占领乔塔帕特后&#xff0c;39 个犹太⼈与 Josephus及他的朋友躲到⼀个洞中&#xff0c;39个犹太⼈决定宁愿死也不要被⼈抓到&#xff0c;于是决定了⼀个⾃…

阿里8年经验之谈 —— pytest接口自动化测试框架搭建!

一. 背景 Pytest目前已经成为Python系自动化测试必学必备的一个框架&#xff0c;网上也有很多的文章讲述相关的知识。最近自己也抽时间梳理了一份pytest接口自动化测试框架&#xff0c;因此准备写文章记录一下&#xff0c;做到尽量简单通俗易懂&#xff0c;当然前提是基本的py…

C++:类的默认成员函数------构造函数析构函数(超详细解析,小白一看就懂!)

目录 一、前言 二、为什么会出现构造函数和析构函数 三、构造函数 &#x1f34e;构造函数的概念 &#x1f350;构造函数特性 &#x1f4a6;解释特性3&#xff1a;对象实例化时编译器自动调用对应的构造函数 &#x1f4a6;解释特性4&#xff1a;构造函数支持重载 &…

进阶JAVA篇- Collcetions 工具类与集合的并发修改异常问题

目录 1.0 集合的并发修改问题 1.1 如何解决集合的并发修改问题 2.0 Collcetions 工具类的说明 1.0 集合的并发修改问题 我们可以简单的认为&#xff0c;就是使用迭代器遍历集合时&#xff0c;又同时在删除集合中的数据&#xff0c;程序就会出现并发修改异常的错误。 代码如下&…

linux性能分析(五)CPU篇(一)基础

一 CPU篇 遗留&#xff1a; 负载与cpu关系、负载与线程的关系? ① CPU 相关概念 1、physical 物理CPU个数 --> 一般一个实体 2、cpu 核数 3、逻辑CPU个数 逻辑核 4、超线程 super thread 技术 5、各种cpu的计算方式物理 physical CPU的个数&#xff1a; physical id逻…

【Javascript】创建对象的几种方式

通过字面量创建对象 通过构造函数创建对象 Object()-------------构造函数 通过构造函数来实例化对象 给person注入属性 Factory工厂 this指向的是对象的本身使⽤new 实例化⼀个对象&#xff0c;就像⼯⼚⼀样

5G学习笔记之5G频谱

参考&#xff1a;《5G NR通信标准》1. 5G频谱 1G和2G移动业务的频段主要在800MHz~900MHz&#xff0c;存在少数在更高或者更低频段&#xff1b;3G和4G的频段主要在450MHz ~ 6GHz&#xff1b;5G主要是410MHz ~ 6GHz&#xff0c;以及24GHz ~ 52GHz。 5G频谱跨度较大&#xff0c;可…

TCP为什么需要三次握手和四次挥手?

一、三次握手 三次握手&#xff08;Three-way Handshake&#xff09;其实就是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包 主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下&#xff…

laravel 中 npm run 同时执行多个命令

在使用laravel 启动项目时 经常需要同时运行两个命令。 1.前端既是 npm run dev 2.后端php则是 php artisan serve 可以安装 使用 concurrently 进行并行启动 concurrently - npm npm install concurrently --save 之后修改 package.json 在 scripts 中增加 &#xff08;多条…

shell算术运算符

文章目录 算术运算符&#xff1a;算术运算扩展算术运算指令expr算术运算指令let自增自减运算符 算术运算符&#xff1a; 加法 - 减法 * 乘法 / 除法 % 取余 ** 幂运算算术运算扩展 算术运算扩展的运算数只能是整数 [rootlocalhost tmp]# num1$[41] [rootlocalhost tmp]# echo …

软件测试肖sir__python之ui自动化测试框架unittest

ui自动化测试框架unittest 一、自动化框架 1、自动化框架类型 &#xff08;1&#xff09;unittest框架 &#xff08;python中自带框架&#xff09; &#xff08;2&#xff09;pytest框架 &#xff08;第三方库&#xff09; &#xff08;3&#xff09;po框架 &#xff08;分层思…

10.一篇文章带你理解及使用CSS(前端邪术-化妆术)

文章目录 1. CSS 是什么2.基本语法规范3.引入方式3.1内部样式表3.2行内样式表3.3外部样式 4.代码风格4.1样式格式4.2样式大小写4.3空格规范 5.选择器5.1选择器的功能5.2选择器的种类5.3基础选择器5.3.1标签选择器5.3.2类选择器5.3.3 id 选择器5.3.4通配符选择器5.3.5基础选择器…

pytest自动化测试数据驱动yaml/excel/csv/json

这篇文章主要为大家介绍了pytest自动化测试数据驱动yaml/excel/csv/json的示例详解&#xff0c;有需要的朋友可以借鉴参考下。− 数据驱动 数据的改变从而驱动自动化测试用例的执行&#xff0c;最终引起测试结果的改变。简单说就是参数化的应用。 测试驱动在自动化测试中的应…

初始C++入门(2)

缺省参数 缺省参数是 声明或定义函数时 为函数的 参数指定一个缺省值 。在调用该函数时&#xff0c;如果没有指定实 参则采用该形参的缺省值&#xff0c;否则使用指定的实参。 有句俗话叫&#xff0c;做人不能像缺省函数。 #include<iostream> using namespace std;void…

C# winform如何实现数据的保存和读取

在c#winform中我们在写程序时&#xff0c;经常需要进行数据处理&#xff0c;那么数据如何保存和读取&#xff08;下面我们通过序列化和反序列化的方式来实现&#xff09; 第一步: 我们建立一个winform窗体 第二步: 构建一个外部实体类&#xff08;Student类&#xff09; 第…

再谈String

文章目录 一、字符串常量池1.1 创建对象的思考1.2 字符串常量池(StringTable)1.3 再谈String 对象创建 一、字符串常量池 1.1 创建对象的思考 下面创建String对象的方式相同吗&#xff1f; public static void main(String[] args) {String s1 "hello";String s2…

Java日志系统之Slf4j

目录 Slf4j Slf4j的简单使用 Slf4j的日志绑定流程 Slf4j桥接器 Slf4j Slf4j又称简单日志门面&#xff0c;Slf4j主要是为了给Java日志访问提供一套标准&#xff0c;规范的API框架&#xff0c;其主要意义在于提供接口&#xff0c;具体的实现可以交由其他的日志框架。 Slf4j…

概念解析 | 心脏电活动和机械活动之间的关系

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:心脏电活动和机械活动之间的关系。 心跳的交响乐:心脏电活动与机械活动之间的关联 一、背景介绍 心脏通过不断跳动将血液输送到我们身体的每一个角落。而这个跳动过程,是…

【Godot】【BUG】4.x NavigationAgent 导航不生效

4.2.beta2 试了半天才发现原来默认只对第一个有导航的 TileMap 的第 1 层 生效&#xff0c;而我设置的导航层不是第一层&#xff0c;然后我新建了一个 TileMap 将导航的瓦片设置到这个 TileMap 上了&#xff0c;如图 这样就解决了问题&#xff0c;不用再修改默认设置的东西了&a…