我正在阅读一本初学者的java书,其中包含一些可以试用的练习题。我目前正在学习while循环,有一个问题我被困住了,并且在过去的两天里一直在困扰着我。
它要求我使用一个While循环来打印出序列1,2,0,3,-1,4中的前十个数字。
我已经计算出了最简单的部分,即序列是如何进行的(加1,取2,加3,取4,加5,取6,加7等等)。然而,我不知道如何实现这一点。
public class WhileTester {
public static void main(String[] args) {
System.out.println("First 10 numbers in the sequence 1, 2, 0, 3, -1, 4, -2 ...");
int i = 0;
while (i <= 6) {
int a = 1;
int num = i;
if (i % 2 == 0) {
num = -i;
} else {
num = i;
}
a = a + num;
System.out.print(a+ ", ");
i++;
我知道这离我需要达到的地方还很远,但我被困在了想法上。
提前谢谢。
发布于 2013-11-11 08:24:48
我想你弄错了序列,看看数字:从1开始,然后是+1,-2 +3 -4 +5...
也许这会对你的实现有所帮助。
发布于 2013-11-11 08:30:08
在每次迭代时,在循环内将a设置回1。A不应该在循环之外初始化吗?
发布于 2013-11-11 08:36:38
我突然发现,你离解决方案更近了一步,而不是你自己的功劳。
如果你把num
移到循环之外……
然后,在每次循环时将1加到num
:
在“偶数”循环中添加num
,在奇数循环中减去num
。现在,您需要循环10次(直到值为6...这是一个“巧合”……):
你的关键代码变成:
int num= 0;
int a = 1;
for (int i = 0; i < 10; i++) {
System.out.println(a);
num++;
if (i % 2 == 0) {
a += num;
} else {
a -= num;
}
}
https://stackoverflow.com/questions/19897001
复制相似问题