1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Cランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Go編
  5. 「1を数えよ」を解くために:part4 Go編

Cランク・スキルチェック過去問題セットのサムネイル
「1を数えよ」を解くために:part4 Go編(paizaランク C 相当)

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

問題

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

part3 までで「1を数えよ」を解くことはできましたが、「1を数えよ」のテーマはビット演算です。
ビット演算を使うことで N を 2 進数に変換しなくてもこの問題を解くことができます。
part4 以降ではビット演算を利用して解くことを目指します。


10 進数の整数 N が与えられます。
N を 2 進数にしたとき、最下位の桁が 1 かどうか判定してください。

今回の問題では N を 2 進数に変換することなく、AND 演算(論理積)を使って判定してください。

ビットとは、0 と 1 のいずれかをとるデータの単位のことです。
ビット演算は、ビット毎の論理演算を指します。
数値に対してビット演算を行うとき、数値は 2 進数で扱われます。
AND 演算とは 2 つのビットがともに 1 のとき、またそのときに限り 1 となる演算です。
例えば、10 進数の 5 と 1 のビット毎の AND 演算を考えてみます。
5 の 2 進数表記 : 101
1 の 2 進数表記 : 001
ビット毎に AND 演算を行うと 001 となります。

入力される値

入力は以下のフォーマットで与えられます。

N

・1 行目に10 進数の整数 N が与えられます。

・入力は合計で 1 行となり、末尾に改行が 1 つ入ります。


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

N を 2 進数にしたとき、最下位の桁が 1 なら Yes、そうでないなら No を出力してください。

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

条件

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

・入力はすべて整数

・ 0 ≦ N ≦ 65535

入力例1

3

出力例1

Yes

入力例2

2

出力例2

No

問題一覧へ戻る

ページの先頭へ戻る