You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java实验求助:如何将正直角星号三角形改为倒直角输出

解决倒直角星号三角形的打印问题

嘿,我懂你现在的困扰!倒直角星号三角形确实是编程入门实验里很常见的小关卡,我来帮你把正三角的代码改成倒转样式~

首先,先假设你原来的正直角三角形代码大概是这样的(毕竟初学阶段大家写的逻辑都差不多😉):

rows = 5
for i in range(1, rows + 1):
    print('*' * i)

这段代码的逻辑很简单:循环rows次,每次打印的星号数量从1递增到rows,所以输出的是从上到下越来越宽的正三角。

要改成倒直角三角,核心就是把星号的数量从「递增」改成「递减」,我们只需要调整循环的方向,让i从总行数开始,一直减到1就行。

左对齐的倒直角三角

如果想要输出这种样式:

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

对应的代码是:

rows = 5
# 从rows开始,每次减1,直到1(不包含0)
for i in range(rows, 0, -1):
    print('*' * i)

右对齐的倒直角三角

如果需要星号靠右、左边带空格的倒三角样式:

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

那我们只需要在每行的星号前加上对应数量的空格——空格数等于「总行数 - 当前行的星号数」,代码如下:

rows = 5
for i in range(rows, 0, -1):
    # 先打印(rows - i)个空格,再打印i个星号
    print(' ' * (rows - i) + '*' * i)

其实核心逻辑就是调整循环中星号数量的变化方向,要是你原来的代码用的是其他语言(比如C、Java),思路也是一样的:控制每行的星号数从多到少就行。

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

火山引擎 最新活动