1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 繰り返し二乗法・ダブリングメニュー(言語選択)
  4. 問題一覧 C#編
  5. ビットの判定 C#編

繰り返し二乗法・ダブリングメニューのサムネイル
ビットの判定 C#編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

前問では、2 の累乗を求めるプログラムを作成しました。
では、2 の累乗がどのように 2 進数と関係しているのかを考えてみましょう。

まず、すべての非負整数は、2 進数で表すことができます。
たとえば、整数 11 は 2^3 + 2^1 + 2^0 と表すことができ、2 進数で 1011 と表すことができます。
これは、右から 3, 1, 0 番目のけたが 1 であることと対応しています。

同じように、どんな非負整数でも、必ず異なるいくつか (0 個以上) の指数を用いた 2 の累乗の和で表すことができます。

2 進数で右から i 番目のけたが 1 のとき、下から i 番目のビットが立っているといい、2^{i-1} がその 2 の累乗の和に含まれることを意味します。
では実際に、与えられた整数の 2 進数表記において、下から i 番目のビットが立っているかどうかを判定してみましょう。

整数 n, i が与えられるので、n の 2 進数表記において下から i 番目のビットが立っているかどうかを判定してください。
なお、すべての n < 2^{i-1} となる i について、i 番目のビットは 0 として扱うものとします。

入力される値

n i


・ 1 行目に整数 n と整数 i が半角スペース区切りで与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

n の 2 進数表記において、下から i 番目のビットが立っている場合は True、立っていない場合は False と出力してください。

また、末尾に改行を入れ、余計な文字を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 入力はすべて整数
・ 0 ≦ n < 2^20
・ 1 ≦ i ≦ 20

入力例1

11 3

出力例1

False

入力例2

11 4

出力例2

True

問題一覧へ戻る

ページの先頭へ戻る