我目前正在为我的入门CS决赛学习,而且我遇到了一些非常困难的问题。我最担心的是要求我用Java生成代码,以便在屏幕上创建以下输出:
+
0 +++
++++++ 00
++++++++++ 000
...(这种模式持续200行)
这似乎是一个非常基本的问题,但我该如何做呢?我知道我应该编写一些数组并使用for循环来完成它们并将内容输出到屏幕上,但我真的很感激如何解决这个问题的一些指导,以及其他类似的问题。谢谢!
答案 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();
}
}
}