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

Java打印数字金字塔格式异常问题代码排查求助

代码存在的核心问题

  • 缺失行首缩进逻辑:金字塔需要居中显示,每行开头需打印对应数量的前置空格,原代码未处理该部分,所有行左对齐,无金字塔形态
  • 数字生成逻辑颠倒:第N行(从1开始计数)的最大数字应为N,原代码使用numbers - rows作为数字遍历上限,导致第一行就输出了从输入行数到1的所有数字,和预期从上到下数字逐层增多的效果完全相反
  • 缺少Scanner包导入:代码开头未引入java.util.Scanner依赖,直接运行会触发编译错误
  • 空格对齐逻辑不严谨:原代码直接拼接两个空格,当数字为两位数时会出现错位,统一设置数字占宽可解决该问题

修复后可直接运行的代码

import java.util.Scanner;

public class DisplayPyramid {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter the number of lines: ");
        int lineCount = input.nextInt();
        
        // 遍历每一行
        for (int currentLine = 1; currentLine <= lineCount; currentLine++) {
            // 打印行首缩进:每个数字占2位,缩进位数为(总行数-当前行数)*2
            for (int indent = 1; indent <= (lineCount - currentLine) * 2; indent++) {
                System.out.print(" ");
            }
            // 打印左半部分:从当前行数递减到1
            for (int num = currentLine; num >= 1; num--) {
                System.out.printf("%2d", num);
            }
            // 打印右半部分:从2递增到当前行数
            for (int num = 2; num <= currentLine; num++) {
                System.out.printf("%2d", num);
            }
            // 换行
            System.out.println();
        }
        input.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:27:02