Java の係数を負の数と同じように動作させる最善の方法は? 質問する

Java の係数を負の数と同じように動作させる最善の方法は? 質問する

Javaでは

a % b

aが負の場合、bにラップアラウンドする代わりに負の結果が返されます。これを修正する最善の方法は何ですか?私が考えられる唯一の方法は

a < 0 ? b + a : a % b

ベストアンサー1

それは期待通りに動作します: a % b = a - a / b * b; つまり、それは余りです。

できるよ(a % b + b) % b


この式は、が正か負かに関係なく、は(a % b)必ず より小さいという結果として機能します。は との間の負の値であるため、を加算すると の負の値が処理されます。 は必ず より小さく、正です。が正の場合、 はより大きくなるため、最後の法 が存在します。したがって、は を再び より小さくします(負の値には影響しません)。baba(a % b)-b0(a % b + b)baa(a % b + b)b(a % b + b) % bba

おすすめ記事