Java输出杨辉三角形

简介: 本节用Java实现杨辉三角形打印,运用条件、循环及递归语句。通过num()方法递归计算元素值,calculate()方法控制格式与输出,main()接收用户输入行数并调用执行,最终呈现经典对称数字三角形。(239字)

本节利用过 Java 语言中的流程控制语句,如条件语句、循环语句和跳转语句等知识输出一个指定行数的杨辉三角形。


杨辉三角形由数字进行排列,可以把它看作是一个数字表,其基本特性是两侧数值均为 1,其他位置的数值是其左上方数值与右上角数值之和。打印杨辉三角形时需要使用到 for 循环语句。


打印杨辉三角形的实现思路是:每一行前面都是空格,而每行空格的个数需要根据总行数来确定,这个可以通过找规律归纳出来。关键是数值的实现,每一行的数值(除了第一列和最后一列)都是上一行两个数值之和,因此可以通过上一行来获取。


实现步骤如下:

(1) 创建名称为 Test28 的类,在该类中声明 num() 方法,在 num() 方法中传入两个参数,即 x 和 y。其中,x 表示行,y 表示列。num() 方法用于计算第 x 行第 y 列的数值。代码如下:

public static int num(int x, int y) {
    if (y == 1 || y == x) {
        return 1;
    }
    int c = num(x - 1, y - 1) + num(x - 1, y);
    return c;
}

(2) 创建名称为 calculate 的方法,在该方法中传入一个 int 类型的参数,该参数表示打印杨辉三角形的行数。代码如下:

public static void calculate(int row) {
    for (int i = 1; i <= row; i++) {
        for (int j = 1; j <= row - i; j++) {
            System.out.print(" ");
        }
        for (int j = 1; j <= i; j++) { // 打印空格后面的字符, 从第1 列开始往后打印
            System.out.print(num(i, j) + " ");
        }
        System.out.println();
    }
}

(3) 在 main() 方法中添加代码,首先接收用户在控制台输入的打印行数,然后将行数作为参数传入到调用的 calculate() 方法中。代码如下:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("打印杨辉三角形的行数:");
    int row = scan.nextInt();
    calculate(row);
}

(4) 运行代码进行测试,其运行结果如下所示:

打印杨辉三角形的行数:7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 1 5 10 10 5 1
1 6 15 20 15 6 1
相关文章
|
2月前
|
人工智能 数据可视化 API
阿里云Hermes Agent部署安装选择轻量应用服务器还是无影云电脑?
阿里云Hermes Agent提供轻量应用服务器与无影云电脑两种一键部署方案,阿里云官方活动:https://t.aliyun.com/U/OTnSAH 零代码、全可视化,支持自进化、持久记忆、多模型兼容及多端接入。个人开发者选轻量(24小时在线/低成本),职场人选无影(多端即开即用),快速拥有专属AI智能体。
217 0
|
2月前
|
iOS开发 MacOS Windows
【实测好用】Multisim软件安装汉化教程(附安装包+激活图文步骤)
Multisim是NI(现属Emerson)推出的电路仿真软件,基于SPICE引擎,支持模拟/数字/混合信号电路仿真。操作直观、元器件库丰富、分析功能全面(直流/交流/瞬态/噪声等),广泛用于高校电子教学与电路设计验证,是电子信息专业必备工具。(239字)
|
2月前
|
人工智能 开发者 SEO
从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品
SOLO独立开发者社区聚焦真实产品构建过程,涵盖AI工具、一人公司、Side Project等方向,助力中文开发者交流踩坑经验、沉淀实战案例、连接同行伙伴,共建专注长期成长的纯粹技术社区。
从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品
|
2月前
|
SQL Linux 数据库
【2026最新】SQLiteStudio下载安装保姆级教程(附安装包+图文步骤)
SQLiteStudio是一款免费开源、轻量跨平台的SQLite数据库管理工具,支持Windows/macOS/Linux,提供免安装便携版。具备图形化建表、可视化数据编辑、SQL编辑器、导入导出(CSV/JSON/Excel)、正则搜索等功能,操作直观高效,适合各类用户。
|
29天前
|
IDE Java 开发工具
【全网最详细】IntelliJ IDEA下载、安装、配置一站搞定(零基础小白也能看懂)
IntelliJ IDEA是JetBrains出品的顶级Java IDE,以智能补全、深度分析、强大重构和内置VCS著称。社区版免费,Ultimate版支持Spring等企业功能。最新2026.1版已支持Java 26与AI编程助手。(239字)
|
2月前
|
人工智能 弹性计算 JSON
Hermes Agent/OpenClaw 阿里云部署及飞书集成、权限配置+自动化场景指南
OpenClaw(原Clawdbot)作为2026年最热门的开源AI智能体,在最新v2026.2.12版本中实现了飞书通道的原生支持,无需额外开发Webhook或依赖第三方插件,即可与飞书生态深度打通,实现消息收发、日程创建、文档协作、群聊管理等全场景自动化。对于企业用户和团队而言,将OpenClaw部署在阿里云上并接入飞书,既能享受云端的高稳定性与低延迟,又能让AI助手无缝融入日常办公流程,大幅提升协作效率。
506 3
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL】事务核心:ACID特性、隔离级别、脏读/不可重复读/幻读、InnoDB RR隔离级别如何解决幻读
本文系统梳理事务核心知识体系,涵盖ACID本质、隔离级别与三类读异常(脏读、不可重复读、幻读)、InnoDB在RR级别下通过MVCC(快照读)和临键锁(当前读)双机制解决幻读的原理,以及底层日志(undo/redo)与锁机制的关联,澄清常见误区,助力深入理解与工程实践。
|
2月前
|
存储 人工智能 运维
AgenticDB:源自阿里云AnalyticDB,为AI-Native企业而生
AgenticDB是面向AI-Native企业的智能数据基座,以AnalyticDB PostgreSQL为核心,提供上下文服务、多租户隔离、数据沙箱、RAG引擎与Serverless后端,支持Single/Multi-Agent系统敏捷开发与安全运维。
388 2
|
2月前
|
人工智能 IDE Shell
Zed IDE这个终端新功能,治好了我的窗口切换焦虑
Zed IDE近期发布多项重磅更新,尤其新增“New Center Terminal”功能,让终端可直接在编辑区并排打开,告别拖拽拼图式操作。本文详解其双终端模式、心流提升逻辑及开源协作精神,并展望AI驱动的智能终端未来。(239字)
294 2