問題
leftからrightまでの数をすべてANDの演算をした結果を出力
解説
leftから1ずつ増やしてAND演算をすると間に合わない
ここでずっと1になっている場所に注目する
left、rightのビットをこれは最上位の連続した1bitである数を数えればよい
よってleft、rightを同じ数になるまで2で割っていけばよい この割った回数をsとおく
そこで残った最上位の1連続した1bitのみが取り出された変数であるleftをsで左シフトすれば求める答えとなる
leftからrightまでの数をすべてANDの演算をした結果を出力
leftから1ずつ増やしてAND演算をすると間に合わない
ここでずっと1になっている場所に注目する
left、rightのビットをこれは最上位の連続した1bitである数を数えればよい
よってleft、rightを同じ数になるまで2で割っていけばよい この割った回数をsとおく
そこで残った最上位の1連続した1bitのみが取り出された変数であるleftをsで左シフトすれば求める答えとなる