D - CTZ Editorial
by
rsk0315
Python での実装について
下記のことに注意します。
- 整数
n
を 2 進法で表したとき、一番右の1
のみを取り出したものはn & -n
と書ける- e.g.
n == 0b11111101000
のときn & -n == 0b1000
- e.g.
- 整数
m
に対して、m
を表すためのビット数はm.bit_length()
で得られる- e.g.
m == 0b1000
のときm.bit_length() == 4
- e.g.
このことから、(n & -n).bit_length() - 1
を出力すればよいです。
posted:
last update: