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

如何缩短Java生成数字钻石图案代码并实现尺寸可调整功能

实现思路
  • 你原有代码的问题是把每行的打印逻辑硬编码了,自然没法动态调整尺寸。我们把钻石最中间的最大数字作为可调参数size,所有行的空格、数字数量都通过这个参数动态计算即可。
  • 每行的规律统一:对当前要打印的数字n,左边空格数为size - n,数字重复次数为2*n - 1,不需要拆分上下半部分的逻辑,各自循环就行。
优化后可调整尺寸的代码
public class Task2 {
    // 入参size为钻石最中间的最大数字,调整size即可修改图案尺寸
    public static void printDiamond(int size) {
        // 打印上半部分(包含中间最长行)
        for (int n = 1; n <= size; n++) {
            // 打印左侧空格
            for (int i = 0; i < size - n; i++) {
                System.out.print(" ");
            }
            // 打印数字
            for (int i = 0; i < 2 * n - 1; i++) {
                System.out.print(n);
            }
            System.out.println();
        }
        // 打印下半部分
        for (int n = size - 1; n >= 1; n--) {
            // 逻辑和上半部分完全一致
            for (int i = 0; i < size - n; i++) {
                System.out.print(" ");
            }
            for (int i = 0; i < 2 * n - 1; i++) {
                System.out.print(n);
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        // 这里传5就是你示例的效果,要改尺寸直接改参数就行
        printDiamond(5);
    }
}
使用说明
  • 需要调整尺寸时,只要修改printDiamond方法的入参即可,比如传3就会生成最大数字为3的小尺寸钻石,传7就会生成最大数字为7的大尺寸钻石。
  • 整体代码比你原版本缩短了60%以上,没有冗余逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:11