行列プログラマーのp.19
Pythonを用いて、2304811 を47で割った余りを求めよ。ただし%を使用しないこと。
%を使わないでどうやってやれって言うんだ!?と思ってハマったのでメモ。
answer.py
2304811 - (2304811 // 47) * 47
Python には // という演算子があって、これは切り捨て除算と呼ばれる。
sample.py
print(10 / 3)      # 3.33333333333333
print(10 // 3)     # 3
print(10 // 3.3)   # 3.0
print(10 % 3.3)    # 0.10000000000000053
print(10 // 3.4)   # 2.0
print(10 // 3.33)  # 3.0
Cから入った人間だと、整数値を整数値で割れば、切り捨て除算じゃないか。と思ってたけど、型がない世界だと、そうは行かない模様。