我應該編寫一個Java程序來總結下列順序:1.0/1.0 + 1.0/2.0 + 1.0/3.0 .... + 1.0/15,000,000.0以遞增順序然後再次以遞減順序從1.0/15,000,000.0 + 1.0/14,999,999開始一路下降到使用32位浮點的1.0/1.0。我正在努力弄清楚如何做到這一點,但這裏是我到目前爲止(不知道它是否會工作):使用java計算float數組中遞增數字的總和
編輯:對不起打開這個東西備份,但我得到一個1.0對於這兩個答案,我很確定這是不正確的。有誰知道我做錯了什麼?
public class FloatSum {
public static float increasingSum (float numbers1){
float sum1 = 0;
for (int i = 1; i <= 15000000; i++){
sum1 = sum1 + 1/i;
}
return sum1;
}
public static float decreasingSum (float numbers2){
float sum2 = 0;
for (int i = 15000000; i >= 1; i--){
sum2 = sum2 + 1/i;
}
return sum2;
}
public static void main(String[] args) {
float sum1 = 0;
float sum2 = 0;
System.out.println(increasingSum(sum1));
System.out.println(increasingSum(sum2));
}
}
如果我正確地理解了這個問題,你最後在最後加上'2/1 + 2/2 + 2/3 + ... + 2/14999999' +'1/15000000'。 –
'1/i'做整數除法,因此結果總是0. – Voo
很好的結果。我將「int i = 1」更改爲「float i = 1」,現在兩個答案都達到了無窮大。我還需要改變什麼?提前致謝。 – Brett