带有for循环的Java三角形或者其他

时间:2013-01-28 03:26:11

标签: java for-loop

我需要从右侧工作左侧开始创建一个直角三角形。 防爆。 (是空格)

---- X --- XX --xxx -XXXX XXXXX

一个数字(和角色;前X)将在交手之前给出。我给的代码是哪一个。我需要代码来制作三角形。例如,如果数字为5,那么每行最多可以添加5个字符,从一个带有4个空格的X开始计算。然后将有5行,最后是所有X.

更新: 我的代码打印出来

---- X - -X - X -X X ( - 空格,字符后没有空格)

2 个答案:

答案 0 :(得分: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

您的工作就是将其转换为实际代码。

答案 1 :(得分:1)

提示:假设您要打印n x n个字段,当前行索引为i。然后,您需要打印X n-i次(或n-i-1次,具体取决于您的索引i是从0开始还是1开始