如何将其输出到屏幕?

时间:2012-11-17 02:37:51

标签: java arrays output

我目前正在为我的入门CS决赛学习,而且我遇到了一些非常困难的问题。我最担心的是要求我用Java生成代码,以便在屏幕上创建以下输出:

+

0 +++

++++++ 00

++++++++++ 000

...(这种模式持续200行)

这似乎是一个非常基本的问题,但我该如何做呢?我知道我应该编写一些数组并使用for循环来完成它们并将内容输出到屏幕上,但我真的很感激如何解决这个问题的一些指导,以及其他类似的问题。谢谢!

4 个答案:

答案 0 :(得分:0)

0的数量模式只是一个算术序列。 +的数量如下:

Row 1:  1
Row 2:  3 = 1 + 2
Row 3:  6 = 3 + 3
Row 4: 10 = 6 + 4

原来这些是triangular numbers。因此,计算循环中每行的三角形数,并使用嵌套循环多次打印+,然后打印所需数量的0

答案 1 :(得分:0)

我认为这不值得-1。初学者问题不等于一个坏问题。

至于问题本身。您必须先仔细识别模式,然后用简单的英语单词。模式非常简单。

  

从1开始和0开始。对于每次迭代,增加增长   交叉乘以1(所以它是+1,+ 2,+ 3 ......)从2的增长开始   单位,并从1个单位开始将零的增长率增加1。

现在把它放入伪代码然后编码。 请务必先了解模式。我不能强调这一点。直接进入编码对你没有帮助。

答案 2 :(得分:0)

首先,你需要能够重新识别模式,然后你需要能够对其进行编码。

我打算走出困境并建议你将这个问题的两个“步骤”混合在一起,所以让我们在分割它们时非常具体。

The (parenthesis) items are the _additional_ elements.

index 0 : +
index 1 : +(++)(0)
index 2 : +++(+++)0(0)
index 3 : ++++++(++++)00(0)

所以一个好的猜测是该模式可以描述为:

the previous number of +'s (and index + 1 more), 
followed by the previous number of 0's (and one more).

结合

index 0 is "+"

您可能想要从此“规则”计算索引4,5和6,看看它是否正确描述了模式。

现在您已拥有该模式,您实际上只需要两个变量,+符号的数量和0的数量。您可以计算前一个“下一个”。编码不应该太难,但如果是,那么在另一个问题上发布你的程序和你的“新”问题。

答案 3 :(得分:0)

public class Answer {
    public static void main(String[] args) {
        int plusCount = 1;
        for(int i=0; i<200; i++) {
            for(int j=0; j<plusCount; j++) {
                System.out.write('+');
            }
            plusCount += i+2;
            for(int j=0; j<i; j++) {
                System.out.write('0');
            }
            System.out.println();
        }
    }
}