邪惡數,附 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