2016-01-19 109 views
-1

如何計算所有偶數的總和,直到用戶使用Java輸入的某個數?Java - 計算所有偶數的總和達到特定數

+4

你有什麼嘗試?一般來說,我喜歡將作品放入問題的答案中。現在你只是讓我們爲你做你的功課 –

+0

我首先試圖讓它加上0和輸入的某個數字之間的所有數字的總和,所以我寫了數字序列並試圖找到一個公式將輸入數字與輸出相關聯,然後僅對偶數進行相同嘗試。我不是在要求你做我的「家庭作業」,我只是因爲計算不是我的強項而被真正卡住和困惑...... – May

回答

1

這個問題的訣竅是「偶數」。通過使用%(模數運算符),您可以輕鬆找到這些數字。如果您對Mod很好奇,請查看此鏈接https://msdn.microsoft.com/en-us/library/h6zfzfy7(v=vs.90).aspx

使用您目前使用的方形方法並進行一些修改即可實現解決方案。

static int square (int x) 
{ 
    int result = x; 

    for(int i = 0; i < x; i++){ 
     if(i%2 == 0){ 
      result += i 
     } 
    } 

    return result; 
} 
2

天真的解決辦法是從0開始,不斷增加偶數這樣的:

public static int square (int x) 
{ 
    int sum= 0; 
    for(int i = 0; i <= x; i+=2) sum += i; 
    return sum; 
} 

,但你沒有做到這一點。這是一個簡單的算術序列,要計算總和,可以使用公式sum= n(a1 + an)/2,其中a1是第一項,'an'是最後一項,n是序列中項的總數。

a1是2,an是參數,您可以通過2

這樣,通過將參數(向下調整至最接近的偶數)計算n你的函數是:

public static int square (int x) 
{ 
    //you can do error checking if you want, x has to be non negative 

    if((x%2) !=0) x--; 

    //x is guaranteed to be even at this point so x/2 is also an int 
    int sum= x/2 *(1+x/2); 

    return sum; 
} 
+0

在問題中,所有的偶數都包括一個數字用戶輸入的號碼可能很奇怪,但仍應該添加。 –

+1

我同意措辭不是很精確,但我不這樣解釋問題。在任何情況下,如果需要這種行爲,所要求的修改將被認爲是微不足道的 – ForeverStudent

+0

。如果這是我的項目,我會要求澄清。尼斯方程儘管如此 –