邪恶数,附 C++ 示例
在本问题中,我们获得了一个数组数字 N。我们的任务是检查该数字是否为*邪恶数或可憎数。*
邪恶数:这是一个正整数,在它的二进制展开中拥有偶数个 1。
示例:5、17
可憎数:这是一个正整数,在它的二进制展开中拥有奇数个 1。
示例:4、6
让我们举一个例子来理解此问题,
输入:N = 65
输出:邪恶数
解释:
65 的二进制展开: 1000001
解决方案方法:
解决此问题的简单方法是找到该数字的二进制展开,然后计算展开中 1 的个数。如果数量为偶数,则该数字为邪恶数,否则为可憎数。
展示我们解决方案运行情况的程序,
示例
#include <iostream>
using namespace std;
int isEvilNumber(int n) {
int count = 0;
while (n != 0) {
int r = n % 2;
if(r == 1)
count++;
n = n / 2;
}
if (count % 2 == 0)
return 1;
else
return 0;
}
int main(void)
{
int num = 2049;
if (isEvilNumber(num) )
cout<<"The number "<<num<<" is an Evil Number";
else
cout<<"The number "<<num<<" is an Odious Number";
return 0;
}输出 −
The number 2049 is an Evil Number
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 语言
C++
C#
MongoDB
MySQL
Javascript
PHP