我需要从右侧工作左侧开始创建一个直角三角形。 防爆。 (是空格)
---- X --- XX --xxx -XXXX XXXXX
一个数字(和角色;前X)将在交手之前给出。我给的代码是哪一个。我需要代码来制作三角形。例如,如果数字为5,那么每行最多可以添加5个字符,从一个带有4个空格的X开始计算。然后将有5行,最后是所有X.
更新: 我的代码打印出来
---- X - -X - X -X X ( - 空格,字符后没有空格)
答案 0 :(得分:2)
好吧,让我们从数字5开始。最好的办法是简单地考虑每行必须输出的内容,然后循环执行该行。
使用该数字,您必须按如下方式输出5行(我将.
用于空格,因为它更容易识别相邻的那些):
....X
...XX
..XXX
.XXXX
XXXXX
按以下方式查看每一行:
x
。x
。x
。x
。x
的。我在这里感觉到一个模式((4,1),(3,2),(2,3),(1,4),(0,5)) - 第一个数字从n-1
开始(在这种情况下为4)并减少为0.第二个数字从1开始增加到n
(在这种情况下为5)。
在伪代码中(这是你从家庭作业类型问题中得到的全部内容),它看起来像是:
def maketriangle (n):
for lineidx = 1 to n:
for charidx = 1 to n - lineidx: // 4 3 2 1 0
output " "
for charidx = 1 to lineidx: // 1 2 3 4 5
output "X"
output newline
您的工作就是将其转换为实际代码。
答案 1 :(得分:1)
提示:假设您要打印n
x n
个字段,当前行索引为i
。然后,您需要打印X n-i
次(或n-i-1
次,具体取决于您的索引i
是从0开始还是1开始