200,000 intsのような非常に大きな配列の反転数を計算したいのですが、得られる数はかなり大きいです。非常に大きいため、int
値に格納できません。
私が得た答えは-8,353,514,212のようなものですが、単純なケースでは機能するので、問題は、反転の数を格納するために使用する変数のタイプにあると思います。
私も試してみましlong int
たが、出力は同じですが、double
4.0755e+009で試してみると出力になります。何が問題なのかわかりません。
200,000 intsのような非常に大きな配列の反転数を計算したいのですが、得られる数はかなり大きいです。非常に大きいため、int
値に格納できません。
私が得た答えは-8,353,514,212のようなものですが、単純なケースでは機能するので、問題は、反転の数を格納するために使用する変数のタイプにあると思います。
私も試してみましlong int
たが、出力は同じですが、double
4.0755e+009で試してみると出力になります。何が問題なのかわかりません。
unsigned long
(通常 2^32-1) またはunsigned long long
(通常 2^64-1)を使用完全なリファレンスについては、この記事を参照してください。
コンパイラのネイティブタイプが計算結果を保持するのに適していない場合は、bignumライブラリの使用を検討できます。
すばやく検索すると、次の2つが明らかになりました。
どちらも経験はありませんが、SOの周りではgmpの方が人気があるようですので、まずはそれを試してみてください。