-1

我目前正在为我的入门级 CS 期末考试而学习,并且遇到了一些问题,我真的很艰难。我最担心的一个要求我用 Java 生成代码,以在屏幕上创建以下输出:

+

+++0

++++++00

++++++++++000

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

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

4

4 回答 4

0

数字的模式0只是一个等差数列。数量+如下:

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

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

于 2012-11-17T02:48:05.133 回答
0

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

至于问题本身。您必须先仔细识别模式,然后用简单的英语说出它。模式很简单。

从 1 个十字和 0 个零开始。对于每次迭代,从 2 个单位的增长开始,将十字架的增长增加 1(所以它是 +1、+2、+3...),从 1 个单位开始将零的增长增加 1。

现在将其放入伪代码中,然后对其进行编码。一定要先了解这些模式。我不能强调这一点。直接进入编码不会帮助你。

于 2012-11-17T02:48:52.807 回答
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,看看它是否正确地描述了模式。

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

于 2012-11-17T02:49:11.027 回答
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();
        }
    }
}
于 2012-11-17T02:51:32.190 回答