Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,895 questions

51,826 answers

573 users

How to check if a number is evil number (binary representation contains even number of 1) in C++

1 Answer

0 votes
// Evil number = positive whole number whose binary representation contains an even number of 1's

#include <iostream>
#include <string>
#include <bitset>

int countNumberOfOne(const std::string binaryNumber) {
	int length = binaryNumber.length();

	int count = 0;
	char ch;

	for (int i = 0; i < length; i++) {
		ch = binaryNumber[i];
		if (ch == '1') {
			count++;
		}
	}

	return count;
}

bool checkEvilNumber(int number) {
	std::string binaryNumber = std::bitset<16>(number).to_string(); 

	std::cout << number << " = " << binaryNumber << " = ";

	return (countNumberOfOne(binaryNumber) % 2 == 0) ? true : false;
}

int main()
{
	int number = 23;
	std::cout << checkEvilNumber(number) << std::endl;

	number = 9863;
	std::cout << checkEvilNumber(number) << std::endl;
}




/*
run:
    
23 = 0000000000010111 = 1
9863 = 0010011010000111 = 0
   
*/

 



answered Nov 25, 2023 by avibootz
...