私のコードは次のようであるlong long型に相対的です。 しかし、2つの数字14159572 63967072を入力すると、負の数-527892768が出力されますが、正解は226436590403296になります。 出力が32ビットにカットされているようです。 ので、私は変数temp_gcd
を印刷し、4.Iは、それが正しい答えを出力奇妙なC++のエラーは、多分
long long result = abproduct/4;
に表現
long long result = abproduct/temp_gcd;
を変更しました。 a
とb
の両方int
あるので
符号なしの型をすべて使用することをお勧めします: '%'演算子は負の右のオペランドでは動作しませんので、精度が少し向上し、オーバーフローによる未定義の動作が回避されます。おそらく 'uintmax_t'を使用してください –