Java使用for循环打印杨辉三角(附源码解析)

Evan
Evan
发布时间:2026-10-14 | 3人浏览过
原创

本文详解如何利用Java的二维数组与双层for循环构建并输出杨辉三角。核心思路在于动态分配每一行的数组长度,识别边界元素赋值为1,并通过公式 triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1] 计算中间数值,最终实现三角形的完美打印。

杨辉三角的逻辑原理

杨辉三角(Pascal's Triangle)是一个经典的数学几何图形。在Java程序中,我们通常使用二维数组来存储这些数字。其核心规律如下:

  1. 边界值:每一行的第一个元素和最后一个元素均为 1。
  2. 递推公式:除边界外的任意位置 (i, j),其值等于上一行同列 (i-1, j) 与上一行前一列 (i-1, j-1) 之和。
  3. 行数关系:第 i 行(从0开始计数)恰好有 i+1 个数字。

准备条件:开发环境

  • 语言:Java (JDK 8 或更高版本)
  • 工具:IDEA / Eclipse / VS Code 或命令行编译器 javac
  • 基础:了解基本变量声明、for循环语法及二维数组概念

第1步:定义类与主入口

创建一个名为 YanghuiTriangle 的类,并在其中编写 main 方法作为程序入口。

public class YanghuiTriangle {
    public static void main(String[] args) {
        // 后续代码填入此处
    }
}

第2步:初始化二维数组结构

由于杨辉三角每行的数字个数递增,我们需要先创建一个不规则的二维数组。这里以输出前10行为例。

int triangle[][] = new int[10][]; // 创建包含10个子数组的空二维数组

第3步:外层循环分配内存并遍历行号

使用一个 for 循环遍历所有行(索引 i)。在内层中,根据行号初始化当前行的列数。例如,第0行有1个元素,第9行有10个元素。

for (int i = 0; i < triangle.length; i++) {
    triangle[i] = new int[i + 1]; // 动态创建当前行的数组对象
    
    // ...内层逻辑...

第4步:内层循环计算并赋值

进入内层循环(索引 j),遍历当前行的每一个位置。根据之前提到的规律进行判断:

  1. 判定边界:如果是该行第一个元素(j==0)或最后一个元素(j==i),直接赋值为 1。
  2. 计算中间值:如果既不是首也不是尾,则调用公式 triangle[i-1][j] + triangle[i-1][j-1] 获取上一行对应位置的和。
for (int j = 0; j <= i; j++) {
    if (j == 0 || j == i) {
        triangle[i][j] = 1; // 首尾设为1
    } else {
        // 核心递推公式
        triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1];
    }
}

第5步:格式化输出结果

在计算完当前行的所有数值后,立即将其打印到控制台。使用 System.out.print() 结合制表符 \t 对齐,处理完一行后使用 println() 换行。

// 接上一步的内层循环体内部
System.out.print(triangle[i][j] + "\t"); 
// 接上一步的内层循环体外侧
System.out.println(); // 当一行计算完毕,自动换行

完整源代码参考

将上述步骤合并,得到以下可运行的 Java 代码:

public class YanghuiTriangle {
    public static void main(String[] args) {
        int triangle[][] = new int[10][];

        // 1. 外层循环:负责行数
        for (int i = 0; i < triangle.length; i++) {
            // 2. 动态分配当前行的长度
            triangle[i] = new int[i + 1];

            // 3. 内层循环:负责当前行的每个格子
            for (int j = 0; j <= i; j++) {
                // 4. 处理边界与数值计算
                if (j == 0 || j == i) {
                    triangle[i][j] = 1;
                } else {
                    triangle[i][j] = triangle[i - 1][j] + triangle[i - 1][j - 1];
                }
                // 5. 即时打印
                System.out.print(triangle[i][j] + "\t");
            }
            // 行末换行
            System.out.println();
        }
    }
}

运行效果与验证

编译并运行上述代码后,控制台将输出如下整齐的数字阵列:

1	
1	1	
1	2	1	
1	3	3	1	
... (后续行数)
1	9	36	84	126	126	84	36	9	1	

简要总结

以上就是利用 Java for循环 和 二维数组 输出 杨辉三角 的详细内容。掌握这一逻辑不仅能应对基础算法题,更能帮助理解多维数据的存储结构与索引访问技巧。更多关于编程算法的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表