-1

我目前正在开始使用 Java 进行编程。我试图将标题中的序列编码为 Java 中的输出,但我被卡住了!我正在试验 for 功能,欢迎任何帮助;)

4

7 回答 7

23
System.out.println("1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0");

但说真的,伙计们,这是未经测试的第一关:

for(int i=1; i<100; i++){
    System.out.print("1 ");
    for(int j=0; j<i; j++){
        System.out.print("0 ");
    }
}

如果您正在寻找有关如何开始的基本信息,Google 是您的朋友。例如,尝试用谷歌搜索“for loop java”,你会得到很多很好的例子。此外,要学习任何语言的基本知识,谷歌搜索“<language> hello world”是非常可靠的。

于 2009-01-28T23:50:09.203 回答
20

为什么是两个循环?

(从 C# 转换而来,请原谅任何语法错误)

String s = "1 ";
for (int i = 0; i < 5; ++i)
{
  s = s + "0 ";
  System.out.print(s);
}

自我批评:

  • 两个 for 循环(如 Michael Haren 的解决方案)将否定字符串复制
  • StringBuffer/StringBuilder 将否定字符串复制
于 2009-01-29T00:10:28.960 回答
4

您可以将数字 10 存储在变量中,然后在循环中打印该数字,将其乘以 10(在其十进制表示后附加一个零),然后重复。

于 2009-01-28T23:56:07.570 回答
3
for (int i = 2; i < 64; i <<= 1)
    //System.out.print(Integer.toString(i, 2));
    System.out.print(Integer.toString(i, 2).replaceAll("[01]", "$0 "));
于 2009-01-29T00:05:56.817 回答
0

还是你的老师要求你做的?两个嵌套的 for 循环就可以了。

或者以另一种语言(Ruby)的另一种方式:

4.times {|n| print 10**(n+1)}
于 2009-01-28T23:49:03.980 回答
0

这不是真正的 fors 问题,而是非常基本的算法思维问题。你有一个由“1”组成的序列,然后是随着时间增长的其他东西“,另一个“1”,另一个东西等等。你可以将它们视为两个不同的交错序列。

因此,整体结构将类似于:

while(... infinity?)
{
   System.out.print("1");
   doSomething(); 
}

现在,某些东西显然与外部循环的迭代次数(“阶段”)或 1 的计数相关,因此您需要类似:

int stage=0;
while(...infinity?)
{
   ++stage;
   System.out.print("1");
   for(int i=0; i<stage; ++i) System.out.print("0");
}

如果您知道需要经过多少个循环,请使用 for 循环而不是 while,并通过它增加阶段。

于 2009-01-28T23:58:00.170 回答
-1
for (int i = 1; i < 100000;)
{
    i = i * 10;
    System.out.print(i);              
}

或者

int i = 1;

while (i < 100000)
{
    i = i * 10;
    System.out.print(i);
}
于 2010-11-16T02:26:01.310 回答