我应该重新创建这段代码
{{1}}
但是在循环中有交替的符号(1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... + 1 / N)并打印出值(输入整数:5 总数为:0.7833333333333332)
我想知道我怎么能这样做?我能够编写原始代码,但我不知道如何复制代码但是有交替的符号。
答案 0 :(得分:2)
public static void main(String[] args) {
// TODO, add your application code
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter an integer: ");
int n = keyboard.nextInt();
double x = 0;
System.out.print("The total is: ");
for (int i = 1; i <= n; i++){
if(i%2==0){ //even
x = x-(1.0/i);
}
else{ //odd
x = x+(1.0/i);
}
}
System.out.print(+x);
}
这可能是你想要做的。重要的变化是if(i%2==0)
逻辑 - 在这里我将它用作基于i
是偶数还是奇数的for循环的不同迭代交替的方式。
希望这有帮助,随时提出任何问题
答案 1 :(得分:0)
将x = x+-(1.0/i);
更改为x -= Math.pow(-1,i)/i;
。这应该可以解决问题。
答案 2 :(得分:0)
double s = -1; // Sign factor
for (int i = 1; i <= n; i++) {
s = -s;
x += s/i;
}