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

Java Pattern编程:输入值为4时字符图案输出与预期不符问题求解

Java字符图案打印问题排查

问题分析

原代码存在以下核心错误:

  • 输出逻辑结构错误:错误拆分了*、i的打印顺序,额外多打印了大量不必要的*字符
  • 循环条件设置错误:打印*、i的循环次数完全不符合图案要求,导致每行字符长度远大于预期的2n-1
  • 结构逻辑偏差:没有按照每行的字符规则判断输出内容,多段冗余循环叠加导致输出混乱

修正思路

先明确图案规则(输入n,共打印n-1行,每行长度为2n-1):

  • 每行开头和结尾打印 n - 当前行号 个字符b
  • 第1行:中间仅打印1个*,无i
  • 第2行及以后:左右各打印1个*,两个*中间打印 2*(当前行号-1)-1 个字符i

修正后代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        // 一共输出n-1行,匹配预期输出规则
        for (int row = 1; row <= n - 1; row++) {
            // 打印左侧b
            for (int j = 1; j <= n - row; j++) {
                System.out.print("b");
            }
            // 打印中间内容
            System.out.print("*");
            if (row >= 2) {
                // 打印中间的i,数量为2row-3
                for (int k = 1; k <= 2 * row - 3; k++) {
                    System.out.print("i");
                }
                System.out.print("*");
            }
            // 打印右侧b
            for (int j = 1; j <= n - row; j++) {
                System.out.print("b");
            }
            System.out.println();
        }
    }
}

运行验证

输入4时,输出结果和预期完全一致:

bbb*bbb
bb*i*bb
b*iii*b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:07