Java使用for循环打印杨辉三角(附源码解析)
本文详解如何利用Java的二维数组与双层for循环构建并输出杨辉三角。核心思路在于动态分配每一行的数组长度,识别边界元素赋值为1,并通过公式 triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1] 计算中间数值,最终实现三角形的完美打印。
杨辉三角的逻辑原理
杨辉三角(Pascal's Triangle)是一个经典的数学几何图形。在Java程序中,我们通常使用二维数组来存储这些数字。其核心规律如下:
- 边界值:每一行的第一个元素和最后一个元素均为
1。 - 递推公式:除边界外的任意位置
(i, j),其值等于上一行同列(i-1, j)与上一行前一列(i-1, j-1)之和。 - 行数关系:第
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),遍历当前行的每一个位置。根据之前提到的规律进行判断:
- 判定边界:如果是该行第一个元素(
j==0)或最后一个元素(j==i),直接赋值为1。 - 计算中间值:如果既不是首也不是尾,则调用公式
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循环 和 二维数组 输出 杨辉三角 的详细内容。掌握这一逻辑不仅能应对基础算法题,更能帮助理解多维数据的存储结构与索引访问技巧。更多关于编程算法的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









