1/n^2をn=1からn=100000の範囲で足していくプログラムをCで組んだのですが、n=1から順に足して総和を求める場合と、n=100000からnを1ずつ減らして総和を求める場合とでは計算結果が異なるのはなぜですか?
該当のソースコード
C
1#include <stdio.h> 2#include <math.h> 3 4int main(){ 5 int i, j, n; 6 float ans1, ans2, pi1, pi2; 7 8 n = 100000; 9 ans1 = 0.0; 10 ans2 = 0.0; 11 12 for(i = 1; i < n; ++i){ ///n=1から順に足して総和を求める場合 13 ans1 += (1 / pow(i, 2)); 14 } 15 pi1 = sqrt(ans1 * 6); 16 printf("1. pi=%f\n", pi1); 17 18 for(j = 100000; j > 0; --j){ ///n=100000からnを1ずつ減らしていき総和を求める場合 19 ans2 += (1 / pow(j, 2)); 20 } 21 pi2 = sqrt(ans2 * 6); 22 printf("2. pi=%f\n", pi2); 23 24 return 0; 25} 26
###実行結果
1. pi=3.141393 2. pi=3.141583
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 02:48
2020/06/10 02:51