C++ 中的邪恶数字与示例
在这个问题中,我们给一个数组一个数字N。我们的任务是检查这个数字是邪恶数字还是邪恶数字。
邪恶数: 它是一个正数,在其二进制展开中有偶数个1。
示例: 5、17
可恶数: 它是一个正数,在其二进制扩展中具有奇数个1。
示例: 4、6
让我们举个例子来理解这个问题,
输入: N=65
输出: 邪恶数字
解释:
65的二进制展开:1000001
解决方法:
该问题的一个简单解决方案是找到数字的二进制展开式,然后计算展开式中1的数量。如果计数是偶数,则该数字是邪恶的数字,否则它是可憎的数字。
程序来说明我们的解决方案的工作,
示例
#includeusing 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<<"号码 "< 输出-
号码 2049 is an Evil Number