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

更新於: 2021-01-22

777 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.