質問するログイン新規登録

回答編集履歴

1

補足

2021/10/10 18:57

投稿

otn
otn

スコア86367

answer CHANGED
@@ -1,4 +1,4 @@
1
1
  考え方としてはOKで、和については改善点は無いです。
2
2
 
3
3
  積については、`unsigned long long int`でもオーバーフローするので駄目です。
4
- `product`と`count`は、`double`にする必要があります。ただし、これでも有効桁数が足りないので、正確には計算できません。ちょっと計算してみると10進48桁になり、正確な計算のためには仮数部が160bit必要なので4倍精度でも足りません。なので、多倍長10進計算ライブラリをつか、`double`か`long double`の精度我慢るか
4
+ `product`と`count`は、`double`にする必要があります。ただし、これでも有効桁数が足りないので、正確には計算できません。ちょっと計算してみると10進48桁になり、正確な計算のためには仮数部が160bit必要なので4倍精度でも足りません。なので、正確な計算には、多倍長10進計算ライブラリが必要です。タイトルにある「誤差減らしたい」といだけであれば、`double`か、あれば`long double`を使うといいです。