使用嵌套循环在单独的行上打印从1到999999的奇数

时间:2013-07-16 18:51:57

标签: java

我正在努力完成标题所说的内容。我不知道如何开始这个代码,除了知道它很可能必须有一个do-while循环,其中一个主体在'while'部分用括号括起来。我想理解这一点而不是直接回答,所以如果你能编写代码并解释或提供更多提示,如何做到这一点,将不胜感激! 输出需要如下所示:

1 (new line)
1 3 (new line)
1 3 5 (new line)
.. ... (new line)
.. ... ... (new line)
1 ... ... 999997 (new line)
1 ... ... 999997 999999 

(不要让它显示每行增加1个奇数,所以我用“(新行)”表示我希望它现在更具可读性。)

好的,感谢新产品的澄清,我能写出来:

    String line = "";
    int start = 1;

    for(;start <= 999999;)
        do{
            System.out.println(line);
            start += 2;
            line += " "  + start;
            }
        while(start <= 999999);

但我遇到一个小问题,1没有出现在任何一行的开头。我忘记做什么了?

**解决。我在我的print语句中添加了1 +行,它按照我想要的方式运行。感谢所有试图提供帮助的人,尤其是新产品,即使我没有正确处理我的问题,我还需要新的东西。

3 个答案:

答案 0 :(得分:1)

您可以将问题视为以下内容:

每个渐进线包括前一行的内容加上另一个奇数。因此,总是将前一行的内容存储在String变量中是很有意义的。

现在找到每个奇数,从数字1开始,每次加2,直到超过给定数字(在本例中为9999999999)。使用evens也可以做同样的事情 - 你只需要从2而不是1开始。

在do-while循环结构中,它看起来像这样(伪代码):

int lastnum = 1;
String prevLine = lastnum;

do while loop (999999 not passed)
{

    PRINT(prevline + " " + (lastnum + 2));

    lastnum += 2;

    \\update the information stored in the previous line
    prevLine += " " + lastnum;

}

实质上你想要:

1)从1开始。 2)打印上一行+新号码(对于第一个号码,前一行将为空白)。 3)更新上一行 4)继续步骤2-3,直到999999999通过。

答案 1 :(得分:0)

你可以使用for循环来开始

这是一个4循环的样本,它计算从1999的奇数,包括

int n = 999;

for(int i=1; i<= n; i+=2)
{

}

也许你可以尝试将一个for循环放在另一个循环中,看看是否适合你。

答案 2 :(得分:0)

你可以采用渐进方法,它存储以前的结果并为它添加一个结果,从而为下一行创建结果,因为为每一行计算相同的东西不是一个好主意。