C++程序 检查数字的奇偶性
给定一个数字,检查它是奇数还是偶数。
示例:
输入 : 2
输出 : 偶数
输入 : 5
输出 : 奇数
一个 简单的解决方案 是找到除以2的余数。
// C++ program to check
// for even or odd
#include <iostream>
using namespace std;
// Returns true if n is
// even, else odd
bool isEven(int n)
{
return (n % 2 == 0);
}
// Driver code
int main()
{
int n = 101;
isEven(n) ? cout << "Even" : cout << "Odd";
return 0;
}
输出:
奇数
时间复杂度: O(1)
空间复杂度: O(1)
一个 更好的解决方案 是使用位运算符。我们需要检查最后一位是否为1。如果最后一位是1,则数字为奇数,否则总是偶数。
解释:
输入: 5 //奇数
00000101
& 00000001
--------------
00000001
--------------
输入: 8 //偶数
00001000
& 00000001
--------------
00000000
--------------
下面是执行该想法的实现。
// C++ program to check
// for even or odd
#include <iostream>
using namespace std;
// Returns true if n is
// even, else odd
bool isEven(int n)
{
// n & 1 is 1, then
// odd, else even
return (!(n & 1));
}
// Driver code
int main()
{
int n = 101;
isEven(n)? cout << "Even" :
cout << "Odd";
return 0;
}
输出:
奇数
时间复杂度: O(1)
空间复杂度: O(1)