算术序列1,4,7,10中的前1,000个数字

时间:2013-11-05 13:13:51

标签: java while-loop sequence integer-arithmetic

我正在尝试获取此算术序列中的前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);
             }
}

3 个答案:

答案 0 :(得分: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++;
}

另请注意,我们第一次输出值时,我将计数变量减少了1到999,因此我们总共输出1000行。

答案 1 :(得分:1)

以下是更正后的代码段:

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

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

答案 2 :(得分: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个数字的序列。希望这会有所帮助。