この記事では、C言語で与えられた数値が偶数か奇数かを判定する方法を紹介します。
剰余演算子、ビット演算、論理演算の3つの方法を解説し、それぞれのコード例を示します。
初心者の方でもわかりやすくサンプルコードを交えて解説していきます。
偶数か奇数か判定する方法
プログラミングにおいて、与えられた数値が偶数か奇数かを判定する方法はいくつかあります。
ここでは、C言語での偶数か奇数かの判定方法について解説します。
方法1: 剰余演算子を使った判定
剰余演算子(%)を使って、与えられた数値を2で割った余りを求めることで、偶数か奇数かを判定することができます。
具体的なコード例を以下に示します。
#include <stdio.h>
int main() {
int num;
printf("数値を入力してください: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%dは偶数です。\n", num);
} else {
printf("%dは奇数です。\n", num);
}
return 0;
}
上記のコードでは、ユーザーに数値を入力してもらい、その数値が偶数か奇数かを判定しています。
剰余演算子を使って、入力された数値を2で割った余りが0であれば偶数、それ以外の場合は奇数と判定しています。
方法2: ビット演算を使った判定
ビット演算を使って、与えられた数値の最下位ビットを見ることで、偶数か奇数かを判定することもできます。
具体的なコード例を以下に示します。
#include <stdio.h>
int main() {
int num;
printf("数値を入力してください: ");
scanf("%d", &num);
if (num & 1) {
printf("%dは奇数です。\n", num);
} else {
printf("%dは偶数です。\n", num);
}
return 0;
}
上記のコードでは、ユーザーに数値を入力してもらい、その数値の最下位ビットが1であれば奇数、0であれば偶数と判定しています。
ビット演算子 &
を使って、数値と1のビットごとの論理積を求め、結果が0でなければ奇数と判定します。
方法3: 論理演算を使った判定
論理演算を使って、与えられた数値が2で割り切れるかどうかを判定することもできます。
具体的なコード例を以下に示します。
#include <stdio.h>
int main() {
int num;
printf("数値を入力してください: ");
scanf("%d", &num);
if ((num >> 1) << 1 == num) {
printf("%dは偶数です。\n", num);
} else {
printf("%dは奇数です。\n", num);
}
return 0;
}
上記のコードでは、ユーザーに数値を入力してもらい、その数値を2で右シフトしてから左シフトし、元の数値と比較しています。
もし元の数値と比較した結果が等しければ偶数、そうでなければ奇数と判定します。
以上がC言語での偶数か奇数かの判定方法です。
どの方法を使っても、与えられた数値が偶数か奇数かを正確に判定することができます。