-5

我需要从右边开始创建一个直角三角形。前任。(- 是空格)

––––X –––XX ––XXX –XXXX XXXXXX

一个数字(和字符;前 X)将在 runner 之前给出。我得到了哪个代码。我需要代码来制作三角形。例如,如果数字为 5,则每行最多可添加 5 个字符,从一个 X 开始计数,并带有 4 个空格。然后将有 5 行最后将是所有 X。

更新:我的代码打印出来

––––X –––X ––X –X X(– 的空格,字符后没有空格)

4

2 回答 2

2

好的,让我们从数字 5 开始。最好的办法是简单地考虑每行必须输出什么,然后循环执行该操作。

使用该数字,您必须输出 5 行,如下所示(我将使用.空格,因为它更容易辨别相邻的行):

....X
...XX
..XXX
.XXXX
XXXXX

查看每一行如下:

  • 第一行有 4 个空格和一个x.
  • 第二行有 3 个空格和 2 个x
  • 第三行有 2 个空格和 3 个x
  • 第四行有 1 个空格和 4 个x
  • 第五行没有空格和 5 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

您的工作是将其转换为真正的代码。

于 2013-01-28T03:31:23.747 回答
1

提示:假设您要打印nxn字段并且当前行索引是i. 然后您需要打印 Xn-i次(或n-i-1次数取决于您的索引i是从 0 开始还是从 1 开始)

于 2013-01-28T03:30:38.890 回答