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

控制台绘制沙漏:底部部分实现失败求助(附代码与预期效果)

解决控制台沙漏底部绘制问题

直接补全底部和中间部分的代码,完美适配奇数、偶数的情况:

public static void hourglass(int n)
{ 
    // Top
    for (int i = 0; i < n / 2; i++)
    {
        for (int j = 0; j < i; j++)
        {
            Console.Write(" ");
        }

        Console.Write("*");

        for (int j = 0; j < n - 2 - 2 * i; j++)
        {
            if (i == 0)
            {
                Console.Write("*");
            }
            else
            {
                Console.Write(" ");
            }
        }
        Console.WriteLine("*");
    }
    // Middle (only for odd n)
    if (n % 2 != 0)
    {
        for (int j = 0; j < n / 2; j++)
        {
            Console.Write(" ");
        }
        Console.WriteLine("*");
    }
    // Bottom
    for (int i = n / 2 - 1; i >= 0; i--)
    {
        for (int j = 0; j < i; j++)
        {
            Console.Write(" ");
        }

        Console.Write("*");

        for (int j = 0; j < n - 2 - 2 * i; j++)
        {
            if (i == 0)
            {
                Console.Write("*");
            }
            else
            {
                Console.Write(" ");
            }
        }
        Console.WriteLine("*");
    }
}

关键说明

  1. 底部实现:把顶部的循环逻辑直接反向执行——i从n/2 -1递减到0,就能反向输出顶部的行,刚好对应沙漏下半部分。
  2. 中间行处理:当n为奇数时,单独输出一行居中的*,比如n=7时的第四行。
  3. 适配验证:测试n=8和n=7,输出完全匹配你给出的示例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:50:42