過去ログ

「数学」小旅行
ビット演算を使うと、つぎのようにできました。

k=0
for i in 1..2**9-1
if (i|i<<1)==2**10-1 then k+=1 end
end
p k

2進数で表して、1から111111111(9個)までについて、
一桁だけビットシフトします。それと元の数とのORをとって、
1111111111(10個)になるものの個数を数えました。
   8月27日(金) 10:39:47     50814

過去問題一覧へ戻る