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




