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

Java间距问题:LAB数字图案输出末尾换行及空格错误求助

Java数字图案递归输出问题修复

问题分析

你遇到的两个核心问题:

  1. 输出末尾无换行,结果直接紧跟光标
  2. 空格格式混乱:递归向下时数字间是两个空格,回溯时是单个空格,与期望的统一单空格不符

修复方案

1. 解决末尾换行

在main方法调用完printNumPattern后,直接添加换行语句即可。

2. 统一空格格式

原代码的空格逻辑不一致,通过新增辅助参数控制前置空格,确保所有数字间仅用单个空格分隔。同时保留原递归终止逻辑,保证数字序列符合题目要求。

修改后的完整代码:

import java.util.Scanner;

public class NumberPattern {
    // 带辅助参数的递归方法,控制是否需要前置空格
    private static void printNumPattern(int num1, int num2, boolean isFirst) {
        // 非第一个数字前先打印单个空格
        if (!isFirst) {
            System.out.print(" ");
        }
        System.out.print(num1);
        
        // 原递归终止逻辑:num1非负时继续递归
        if (num1 >= 0) {
            printNumPattern(num1 - num2, num2, false);
            // 回溯时打印空格和当前数字
            System.out.print(" " + num1);
        }
    }

    // 对外调用的方法,默认第一个数字无前置空格
    public static void printNumPattern(int num1, int num2) {
        printNumPattern(num1, num2, true);
    }

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        int num1 = scnr.nextInt();
        int num2 = scnr.nextInt();
        
        printNumPattern(num1, num2);
        // 添加末尾换行
        System.out.println();
    }
}

关键修改说明

  • 新增isFirst参数:确保只有第一个数字前无空格,其余数字(包括递归回溯的数字)前都有且仅有一个空格,彻底解决空格混乱问题。
  • 末尾换行:main方法最后添加System.out.println(),保证输出结束后自动换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 06:22:54