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で計算する
EDIT:この事をバックアップして申し訳ありませんが、両方の答えと私はかなり間違っていると確信しています。誰かが私が間違ったことを知っていますか?
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));
}
}
私が問題を正しく理解していれば、あなたは_really_最後に '2/1 + 2/2 + 2/3 + ... + 2/14999999' +' 1/15000000'を追加しています。 –
'1/i'は整数除算を行うため、結果は常に0です。 – Voo
ニースキャッチ。私は "int i = 1"を "float i = 1"に変更し、両方の答えが無限に出るようになりました。それ以外に何が変わる必要がありますか?前もって感謝します。 – Brett