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