[英]Sum of odd numbers
给定总和1-3 + 5-7 + 9-11 + 13 ...您应该编译一个程序(给定整数N),该程序会找到总和的值并将其显示在第N个加数上。
我什至不知道该程序应该如何。 我已经写了一些代码,但不知道要添加什么。 拜托,你能帮我吗? :)
这是我的代码:
Scanner input = new Scanner(System.in);
System.out.print("n = ");
int n = input.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
sum = sum + i;
}
}
System.out.println(sum);
可能是您想要这个
如果我输入i / p 7,则将产生-4作为o / p
for (int i = 1; i <= n; i+=2) {
if( i % 4 == 1 )
sum = sum + i;
else
sum = sum - i;
}
@fafl样式(使用三元运算符),如果我输入错误,请纠正我
sum += (i % 2 != 0) ? ( i % 4 == 1 ) ? + i : - i;
如果我输入i / p 7,则将产生7作为o / p
int n = input.nextInt();
int sum = 0;
int addOrDedduct = 1;
for (int i = 1; i <= n; i++ ) {
if( addOrDedduct % 4 == 1 )
sum = sum + addOrDedduct;
else
sum = sum - addOrDedduct;
addOrDedduct+=2;
}
System.out.println(sum);
更新:
fafl的语句sum = n % 2 == 0 ? -n : n
sum = n % 2 == 0 ? -n : n
产生相同的o / p,这里不需要使用loop
忘记循环并使用fafl的答案。
您可以使用一个额外的变量来执行此操作,以检查是否必须加或减:
int sum = 0;
boolean sub = false;
for (int i = 1; i <= n; i++) {
if (i % 2 == 1) {
if (sub) {
sum -= i;
sub = false;
} else {
sum += i;
sub = true;
}
}
}
该解决方案有点笨拙,但应该可以使用。
Fafl是正确的sum = n%2 == 0? -n:n
Scanner input = new Scanner(System.in);
System.out.println("Enter n= ");
int n = input.nextInt();
int sum=0;
boolean positive=false;
for(int i=1;i<=n;i+=2){
positive=!positive;
sum = positive? sum+i : sum-i;
}
System.out.println(sum);
}
使用for循环,无模算术:
int sum = 0
for (int i = 1; math.abs(i) <= n; i = -math.signum(i)*(math.abs(i)+2)) {
sum += i;
}
system.out.println(sum)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.