奇偶数判断
题目描述
给定一个整数,判断该数是奇数还是偶数。如果 $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
为偶数,反之为奇数。
- 所以可以通过:任意数按位与
小技巧可以记住。
:-)