如何在数字序列中从正整数和负整数交替使用

时间:2018-11-08 20:41:22

标签: java

我正在为大学做作业,我必须打印出一个数字序列的前十个数字,即1、2、0、3,-1、4,-2...。序列的其余部分,即您交替添加一个正数,然后添加一个负数,例如从1到2,您将数字添加为1,然后从2到0,您将数字添加为-2。但是我无法完全理解如何仅使用简单的while循环从正向负转换。 我不想为我解决这个问题,我只是想让别人告诉我我将如何交替使用正负整数。 感谢您的任何帮助。

3 个答案:

答案 0 :(得分:0)

这听起来像一个简单的算术问题。

1 + 1 is 2.
2 - 2 is 0.
0 + 3 is 3.
3 - 4 is -1.
-1 + 5 is 4.

从那里开始,模式非常简单-加数(您要添加的第二个数字)从1递增到5,但是它具有交替的符号。 augend(您添加的第一个数字)从1开始,但是先前总和的结果。

在循环中将加数乘以-1将是一个开始;我将其留给读者练习(因为最难的部分-确定算法-上面已经说明)。

答案 1 :(得分:0)

很抱歉,您无法发布代码。这个想法是在while周期的每一步之后在负乘数和正乘数之间交换。

int precision = 10;
int i = 0;
int lastNum = 1;
boolean switcher = false;
while (i++ <= precision) {
    System.out.println(lastNum);
    lastNum += (switcher = !switcher) ? i : -i;
}

var precision = 10;
var i = 0;
var lastNum = 1;
var switcher = false;
while (i++ <= precision) {
  console.log(lastNum);
  lastNum += (switcher = !switcher) ? i : -i;
}

答案 2 :(得分:0)

数学是:

  

f(x)= 1 + x / 2,如果x为偶数

     

f(x)=(3-x)/ 2如果x为奇数

所以您可以简单地做到这一点:

public static void main(String[] args){
    int desiredLength = 10;
    for (int i =1; i<=desiredLength; i++)
        System.out.println(i+" : "+myFunction(i);
}

public static int myFunction(int x){
    return (x%2==1?(3-x)/2:1+x/2);
}