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

Java打印对称数字图案逻辑错误:无法生成正确递减序列求助

数字图案生成问题的错误分析与修正方案

需求图案(n=5时)

****1
***232
**34543
*4567654
567898765

错误输出图案(n=5时)

****1
***232
**34544
*4567666
567898888    

代码错误分析

问题出在第三个循环(数字递减部分):
你在循环体内每次都执行ans1= 2*row-2;,这会导致每一轮循环都把ans1重置为同一个值,所以每次打印的都是相同数字,最终出现重复。比如当row=3时,循环两次,每次都把ans1设为4,打印两次4,而不是递减的4、3。

修正方案

将ans1= 2*row-2;移到第三个循环的外面,只初始化一次,然后在循环内仅执行打印和递减操作。这样ans1会在每次循环后正常递减,生成正确的序列。

修正后的代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        solve();
    }

    public static void solve(){
        int n;
        Scanner obj = new Scanner(System.in);
        n = obj.nextInt();

        for(int row = 1; row <= n; row++){
            int ans1 = row;
            
            // 打印星号空格
            for(int spaces = 1; spaces <= n - row; spaces++){
                System.out.print("*");
            }
            // 打印递增数字部分
            for(int pattern01 = 1; pattern01 <= row; pattern01++){
                System.out.print(ans1);
                ans1++;
            }
            // 打印递减数字部分:修正初始化位置
            ans1 = 2 * row - 2;
            for(int pattern2 = 1; pattern2 <= row - 1; pattern2++){
                System.out.print(ans1);
                ans1--;
            }

            System.out.println();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:40:38