文章内容发布于 634 天前;最后修改于 597 日前。其中的信息可能发生变化或产生更改,敬请留意。
奇偶数判断
题目描述
给定一个整数,判断该数是奇数还是偶数。如果 $n$ 是奇数,输出 odd;如果 $n$ 是偶数,输出 even。
输入格式
输入仅一行,一个整数 $n$。
输出格式
输出仅一行,如果 $n$ 是奇数,输出 odd;如果 $n$ 是偶数,输出 even。
样例 #1
样例输入 #1
5
样例输出 #1
odd
样例 #2
样例输入 #2
10
样例输出 #2
even
提示
$-100\le n\le 100$。
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a % 2 == 0)
{
cout << "even" << endl;
}
else
{
cout << "odd" << endl;
}
return 0;
}
或者:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if ((a & 1) == 0)
{
cout << "even" << endl;
}
else
{
cout << "odd" << endl;
}
return 0;
}
我们分析一下第二种方法:
- 我们先不要想按位与二进制,我们先想:
- 在二进制中只有
0和1。 - 其中,
0表示假,1表示真。 - 按位与(
&)(可以假设为and,只有两个都是真的情况下才是真)。
- 在二进制中只有
( number & 1 )表示的是,二进制中最低的位的数值。- 可以这样想:
10用二进制是1010,1用二进制是0001。同位与操作(都是1才是1),那么结果就是0000,换算成十进制就是0。
- 可以这样想:
- 在二进制中,最低位为
0表示偶数;最低位为1表示奇数。- 所以可以通过:任意数按位与
1是否等于0来判断一个数的奇偶性。如果为0为偶数,反之为奇数。
- 所以可以通过:任意数按位与
小技巧可以记住。