You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将帕斯卡三角转换为方阵?附Java代码片段

如何将帕斯卡三角转换为方阵?

我来帮你修改代码实现这个需求~首先咱们得明确:方阵意味着每行每列的长度都相等,帕斯卡三角的第n行有n个元素,剩下的位置我们可以用0来填充(或者根据需求调整对齐方式)。下面是修改后的完整代码和关键说明:

左对齐版方阵(空缺补0)

import java.util.*;
public class PascalSquare {
    public static void main(String[] args) {
        int row = 7;
        // 创建row×row的方阵,Java数组默认初始值为0,刚好填补空缺
        int[][] pascalSquare = new int[row][row];
        
        // 初始化帕斯卡三角的第一个元素
        pascalSquare[0][0] = 1;
        
        // 填充帕斯卡三角的核心逻辑
        for (int i = 1; i < row; i++) {
            // 每行的第一个元素固定为1
            pascalSquare[i][0] = 1;
            // 填充中间的元素:当前元素 = 上一行左上角 + 上一行正上方的元素
            for (int j = 1; j <= i; j++) {
                pascalSquare[i][j] = pascalSquare[i-1][j-1] + pascalSquare[i-1][j];
            }
            // 剩余位置保持默认的0,无需额外处理
        }
        
        // 打印最终的方阵
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < row; j++) {
                System.out.print(pascalSquare[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

关键修改点说明

  • 数组结构调整:把原代码的不规则数组(每行长度不同)改成了固定大小的row×row二维数组,直接满足方阵的要求
  • 索引简化:改用Java更常用的0-based索引(从0开始计数),避免原代码中i+2这类容易混淆的长度计算
  • 自动补0:Java中int类型数组的默认值是0,刚好完美填补帕斯卡三角元素以外的空缺位置
  • 完善打印逻辑:补全了你原代码中未完成的打印语句,确保能正确输出整个方阵

可选:居中对齐的方阵

如果你希望帕斯卡三角在方阵中间显示(两边补0),可以调整元素的起始位置,修改填充逻辑如下:

// 替换原代码中的填充循环部分
for (int i = 0; i < row; i++) {
    // 计算当前行的起始列,让三角居中
    int startCol = (row - i - 1) / 2;
    // 起始位置设为1
    pascalSquare[i][startCol] = 1;
    for (int j = 1; j <= i; j++) {
        pascalSquare[i][startCol + j] = pascalSquare[i-1][startCol + j -1] + pascalSquare[i-1][startCol + j];
    }
}

这样输出的方阵里,帕斯卡三角会居中显示,视觉效果更接近传统的帕斯卡三角样式~

内容的提问来源于stack exchange,提问作者Anon727

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:36:54