如何用Java打印无内部星号的三角形?优化代码逻辑
实现空心三角形的核心思路
Got it, let's break down the logic you need to tweak your existing pyramid code into a hollow triangle—no full code, just the key ideas:
- 保留外层循环和前置空格逻辑:你的原代码里控制行数的外层循环,以及用来打印左侧缩进空格的第一个内层循环,完全可以保留。空心三角形的缩进规则和实心金字塔是一样的,每行的前置空格数还是
5 - i个。 - 修改星号行的打印逻辑:这是核心变化,原来的第二个循环全打
*,现在要分情况:- 对于每一行(除了最后一行):只在该行的第一个位置(也就是循环变量k=0时)和该行的最后一个位置(也就是k=i时)打印
*,中间的所有位置都打印和*宽度一致的空格(也就是,保证整体对齐)。 - 对于最后一行:直接和原代码一样,打印所有的
*,因为空心三角形的底部是实心的,这样才符合三角形的完整形状。
- 对于每一行(除了最后一行):只在该行的第一个位置(也就是循环变量k=0时)和该行的最后一个位置(也就是k=i时)打印
- 逻辑本质:简单来说就是把实心的星号区域,只保留边缘的星号标记,中间替换成空白,同时维持底部的实心状态,就能从实心金字塔转变成空心三角形。
内容的提问来源于stack exchange,提问作者Raza Khan
相关产品推荐
相关产品推荐

