杨辉三角前n行可用二维数组和循环实现:先初始化边界为1,再按“上两数之和”填充中间值,最后居中格式化输出。

用二维数组和循环打印杨辉三角前 n 行,核心是利用“每个数等于它上方两数之和”的规律,逐行构建并输出。
初始化二维数组并设定边界值
创建一个 n × n 的二维整型数组(或更省内存的锯齿状结构,但为简化统一用方阵),首列和对角线位置(即每行第一个和最后一个元素)都设为 1:
- 第 i 行有 i + 1 个数(行号从 0 开始)
- triangle[i][0] = triangle[i][i] = 1
用嵌套循环填充中间数值
外层循环控制行号 i(从 2 开始,因为第 0、1 行已确定),内层循环控制列号 j(从 1 到 i−1):
在调试 Java 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
- triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
- 例如:第 2 行(i=2)只有 j=1 需计算:triangle[2][1] = triangle[1][0] + triangle[1][1] = 1 + 1 = 2
格式化输出避免错位
每行前面补空格使三角居中显示(第 i 行前面加 n - i - 1 个空格),再依次打印该行数字,数字间用空格隔开:
立即学习“Java免费学习笔记(深入)”;
- 推荐用 System.out.printf("%-4d", value) 或简单拼接字符串控制对齐
- 注意:最后一行不额外换行,但每行末尾需 System.out.println()
完整可运行示例(n=5)
代码逻辑清晰,无依赖,直接复制即可运行:
int n = 5;
int[][] triangle = new int[n][n];
<p>// 填充数组
for (int i = 0; i < n; i++) {
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}</p><p>// 打印(居中对齐)
for (int i = 0; i < n; i++) {
// 打印前置空格
for (int k = 0; k < n - i - 1; k++) {
System.out.print(" ");
}
// 打印当前行数字
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}</p>输出效果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1


















