📜  恶臭数

📅  最后修改于: 2021-04-23 21:47:31             🧑  作者: Mango

奇数是一个非负数,二进制扩展中的奇数为1。因此,前几个可恶数字是1、2、4、7、8、11、13、14、16、19…
给定数字,检查其是否为可恶数字。
例子 :

Input : 16
Output : Odious Number
Explanation: Binary expansion of 16 = 10000, 
having number of 1s =1 i.e odd.

Input : 23
Output :  Not odious number
Explanation: Binary expansion of 23 is 10111,
the number of 1s in this is 4 i.e even. 

1)计算给定编号中的设置位。
2)如果计数为奇数,则返回true,否则返回false。

C++
// C/C++ program to check if a number is
// Odious Number or not
#include 
using namespace std;
#include 
 
/* Function to get no of set bits in binary
   representation of passed binary no.
   Please refer below for details of this
   function :
   https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */
int countSetBits(int n)
{
    unsigned int count = 0;
    while (n)
    {
      n &= (n-1) ;
      count++;
    }
    return count;
}
 
// Check if number is odious or not
int checkOdious(int n)
{
    return (countSetBits(n) % 2 == 1);
}
 
// Driver Code
int main()
{
    int num = 32;
    if (checkOdious(num))
        cout << "Yes";
    else
        cout << "No";
    return 0;
}


Java
// Java program to check if a number is
// Odious Number or not
import java.io.*;
import java.math.*;
 
class GFG {
     
    /* Function to get no of set bits in binary
       representation of passed binary no.
       Please refer below for details of this
       function :
       https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */
    static int countSetBits(int n)
    {
        int count = 0;
        while (n!=0)
        {
          n &= (n-1) ;
          count++;
        }
        return count;
    }
      
    // Check if number is odious or not
    static boolean checkOdious(int n)
    {
        return (countSetBits(n) % 2 == 1);
    }
      
    // Driver Code
    public static void main(String args[])
    {
        int num = 32;
        if (checkOdious(num))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
 
/*This code is contributed by Nikita Tiwari.*/


Python3
# Python 3 program to check if a number is
# Odious Number or not
 
# Function to get no of set bits in binary
# representation of passed binary no.
# Please refer below for details of this function :
# https://www.geeksforgeeks.org/count-set-bits-in-an-integer
def countSetBits(n) :
    count = 0
     
    while (n) :
        n = n & (n-1)
        count = count + 1
     
    return count
 
 
# Check if number is odious or not
def checkOdious(n) :
    return (countSetBits(n) % 2 == 1)
     
# Driver Code
num = 32
 
if (checkOdious(num)) :
    print("Yes")
else :
    print("No")
     
 
# This code is contributed by Nikita Tiwari.


C#
// C# program to check if a number
// is Odious Number or not
using System;
 
class GFG {
     
    /* Function to get no of set bits in
    binary representation of passed binary
    no. Please refer below for details
    of this function :
    https://www.geeksforgeeks.org/count-set-bits-in-an-integer/ */
    static int countSetBits(int n)
    {
        int count = 0;
        while (n != 0)
        {
        n &= (n - 1) ;
        count++;
        }
         
        return count;
    }
     
    // Check if number is odious or not
    static bool checkOdious(int n)
    {
        return (countSetBits(n) % 2 == 1);
    }
     
    // Driver Code
    public static void Main()
    {
        int num = 32;
        if (checkOdious(num))
            Console.Write("Yes");
        else
            Console.Write("No");
    }
}
 
/*This code is contributed by vt_m.*/


PHP


Javascript


输出 :

Yes