[英]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.