1

我正在尝试获取此算术序列中的前 1000 个数字(1、4、7、10,...),我必须使用 while 循环来完成。我不知道如何设置计数器,所以我得到了 1000 个号码;我做了这样的事情:

我是编程新手,没有太多经验,在此先感谢。

public static void main(String[]args) /* main Method */
    {
      int s = 1;
        int sum = 3;
        while ( s < 1000 )

             {
               s = s + sum;
               System.out.println(s);
             }
}
4

3 回答 3

4

只要这些值小于 1000,您的代码就会打印这些值。这不是您想要的。

试试这个:

int s = 1;
System.out.println(s);
for (int i = 0; i< 999; i++)
{
    s += 3;
    System.out.println(s);
}

请注意,我println也在循环外调用以确保我们输出 s (1) 的初始值;

编辑

你需要用一个while循环来做吗?好的。试试这个-

int s = 1;
int whileCounter = 0;
System.out.println(s);
while(whileCounter < 999)
{
    s += 3;
    System.out.println(s);
    whilecounter++;
}

另请注意,自从我们第一次输出该值后,我将 count 变量减少了 1 到 999,因此我们总共只输出了 1000 行。

于 2013-11-05T13:18:47.983 回答
1

以下是更正后的代码片段:

  int s = 0;
  int sum = 1;
  while ( s < 1000 )
  {
     s++;
     System.out.println(sum);
     sum += 3;
  }

在您的原始代码中,您将循环计数器与求和变量混淆了;两者应该是不同的。

于 2013-11-05T13:20:28.420 回答
0

等差数列或数列是一个数字序列,使得连续项 (d) 之间的差异是恒定的。在您的情况下,差异是 3,序列中的第一个是 1,并且您想要前 1000 个序列号。现在,拟合算术级数的公式:

a+(n-1)*d

对于您的问题,您有以下内容:

a = 1;
d = 3;

您的解决方案的代码(在 Java 中)如下所示:

public class ArithProg {
public static void main(String[] args) {
    int a = 1;
    int n = 1;
    int d = 3;
    while ( n <= 1000 )  {
        System.out.println(a+(n-1)*d);
        n++;
    }
   }
}

这样做的好处是,您可以更改“a”和“d”的值,并获得等差数列中的 n 个数字序列。希望这可以帮助。

于 2018-11-09T14:20:23.133 回答