商の求め方 余りの切り上げ
以前、Pythonの除算で余りを切り捨てて商を求める方法を記事にしました。
ebisuke33.hatenablog.com
今回は余りを切り上げる方法について記事にします。
余りの切り捨て
例えば次のように//を使うと余りを切り捨てて商である1が出力されます。
a = 3 b = 2 div_num = a // b print(div_num) # 1
この方法はよく使うので覚えやすかったです。
余りの切り上げ その1
この除算の答えである1.5の余りを切り上げて2を出力する方法を紹介します。
こちらの記事で詳しく解説されています。
余りは切り上げとする商の説明 - Qiita
a = 3 b = 2 div_num = (a + b - 1) // b print(div_num) # 2
この方法では割り切れる/割り切れないという両方の場合でも、同じシンプルなコードで余りの切り上げができます。
余りの切り上げ その2
同じ結果が得られますが次のような方法もあります。
こちらのサイトでD問題で使用されている方法です。
AtCoder ABC185 個人的メモ
a = 3 b = 2 div_num = - (-a // b) print(div_num)
aもbも正の整数であれば、(-a // b)は負の値になります。
先に紹介したように//を使用すると余りを切り下げます。
余りが出る場合は、負の値の余りを切り下げることになるので絶対値は増加します。
よって、(-a // b)に-1をかけた値は a / b の余りの切り上げに等しくなります。
余りの切り上げ方法もいろんな種類があり、できるだけ多くの方のコードを読んで学習していきたいです。
唯一 コンテストですぐにコードが思い浮かぶか、不安です…