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

如何使用Java for循环实现要求的钻石打印图案?

钻石图案实现方案

核心逻辑

钻石图案为上下对称结构,按两段拆分实现即可:

  • 设定奇数参数n作为钻石最宽位置的星号数量,同时也是整个图案的总行数
  • 上半段(含中间最宽行):第i行(从0开始计数)先输出(n - 2i - 1) / 2个空格,再输出2i + 1个星号
  • 下半段:倒序遍历上半段除中间行外的所有行,重复空格+星号的输出规则即可

代码实现

Python 版本

# n可自定义为任意奇数,代表钻石最宽处星号数
n = 5
# 输出上半段+中间行
for i in range((n // 2) + 1):
    print(" " * ((n - 2 * i - 1) // 2) + "*" * (2 * i + 1))
# 输出下半段
for i in range((n // 2) - 1, -1, -1):
    print(" " * ((n - 2 * i - 1) // 2) + "*" * (2 * i + 1))

C 语言版本

#include <stdio.h>
int main() {
    // n可自定义为任意奇数,代表钻石最宽处星号数
    int n = 5;
    // 输出上半段+中间行
    for (int i = 0; i <= n / 2; i++) {
        for (int j = 0; j < (n - 2 * i - 1) / 2; j++) {
            printf(" ");
        }
        for (int j = 0; j < 2 * i + 1; j++) {
            printf("*");
        }
        printf("\n");
    }
    // 输出下半段
    for (int i = n / 2 - 1; i >= 0; i--) {
        for (int j = 0; j < (n - 2 * i - 1) / 2; j++) {
            printf(" ");
        }
        for (int j = 0; j < 2 * i + 1; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

运行示例

n=5时输出效果如下:

*
 ***
*****
 ***
  *

内容的提问来源于stack exchange,提问作者Afghan Eka Pangestu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 00:18:03