簡體   English   中英

奇數和

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM