Suma de dígitos con número par de 1 en su representación binaria

Dada una array arr[] de tamaño N . La tarea es encontrar la suma de los dígitos de todos los elementos de la array que contienen un número par de 1 en su representación binaria.
Ejemplos: 
 

Entrada: arr[] = {4, 9, 15} 
Salida: 15 
4 = 10, contiene un número impar de 1 
9 = 1001, contiene un número par de 1 
15 = 1111, contiene un número par de 1 
Suma total = Suma de dígitos de 9 y 15 = 9 + 1 + 5 = 15
Entrada: arr[] = {7, 23, 5} 
Salida: 10 
 

Enfoque: 
se cuenta el número de 1 en la representación binaria de cada elemento de la array y, si es par, se calcula la suma de sus dígitos.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// CPP program to find Sum of digits with even
// number of 1’s in their binary representation
#include <bits/stdc++.h>
using namespace std;
 
// Function to count and check the
// number of 1's is even or odd
int countOne(int n)
{
    int count = 0;
    while (n) {
        n = n & (n - 1);
        count++;
    }
 
    if (count % 2 == 0)
        return 1;
    else
        return 0;
}
 
// Function to calculate the sum
// of the digits of a number
int sumDigits(int n)
{
    int sum = 0;
    while (n != 0) {
        sum += n % 10;
        n /= 10;
    }
 
    return sum;
}
 
// Driver Code
int main()
{
    int arr[] = { 4, 9, 15 };
     
    int n = sizeof(arr) / sizeof(arr[0]);
    int total_sum = 0;
 
    // Iterate through the array
    for (int i = 0; i < n; i++) {
        if (countOne(arr[i]))
            total_sum += sumDigits(arr[i]);
    }
 
    cout << total_sum << '\n';
     
    return 0;
}

Java

// Java program to find Sum of digits with even
// number of 1's in their binary representation
import java.util.*;
 
class GFG
{
 
// Function to count and check the
// number of 1's is even or odd
static int countOne(int n)
{
    int count = 0;
    while (n > 0)
    {
        n = n & (n - 1);
        count++;
    }
 
    if (count % 2 == 0)
        return 1;
    else
        return 0;
}
 
// Function to calculate the sum
// of the digits of a number
static int sumDigits(int n)
{
    int sum = 0;
    while (n != 0)
    {
        sum += n % 10;
        n /= 10;
    }
 
    return sum;
}
 
// Driver Code
public static void main(String[] args)
{
    int arr[] = { 4, 9, 15 };
     
    int n = arr.length;
    int total_sum = 0;
 
    // Iterate through the array
    for (int i = 0; i < n; i++)
    {
        if (countOne(arr[i]) == 1)
            total_sum += sumDigits(arr[i]);
    }
    System.out.println(total_sum);
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 program to find Sum of digits with even
# number of 1’s in their binary representation
 
# Function to count and check the
# number of 1's is even or odd
def countOne(n):
    count = 0
    while (n):
        n = n & (n - 1)
        count += 1
 
    if (count % 2 == 0):
        return 1
    else:
        return 0
 
# Function to calculate the summ
# of the digits of a number
def summDigits(n):
    summ = 0
    while (n != 0):
        summ += n % 10
        n //= 10
 
    return summ
 
# Driver Code
arr = [4, 9, 15]
 
n = len(arr)
total_summ = 0
 
# Iterate through the array
for i in range(n):
    if (countOne(arr[i])):
        total_summ += summDigits(arr[i])
 
print(total_summ )
 
# This code is contributed by Mohit Kumar

C#

// C# program to find Sum of digits with even
// number of 1's in their binary representation
using System;
 
class GFG
{
 
// Function to count and check the
// number of 1's is even or odd
static int countOne(int n)
{
    int count = 0;
    while (n > 0)
    {
        n = n & (n - 1);
        count++;
    }
 
    if (count % 2 == 0)
        return 1;
    else
        return 0;
}
 
// Function to calculate the sum
// of the digits of a number
static int sumDigits(int n)
{
    int sum = 0;
    while (n != 0)
    {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}
 
// Driver Code
public static void Main()
{
    int[] arr = { 4, 9, 15 };
     
    int n = arr.Length;
    int total_sum = 0;
 
    // Iterate through the array
    for (int i = 0; i < n; i++)
    {
        if (countOne(arr[i]) == 1)
            total_sum += sumDigits(arr[i]);
    }
    Console.WriteLine(total_sum);
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
 
    // Javascript program to find Sum of digits with even 
    // number of 1’s in their binary representation
     
    // Function to count and check the 
    // number of 1's is even or odd
    function countOne(n)
    {
        let count = 0;
        while (n) {
            n = n & (n - 1);
            count++;
        }
 
        if (count % 2 == 0)
            return 1;
        else
            return 0;
    }
 
    // Function to calculate the sum 
    // of the digits of a number
    function sumDigits(n)
    {
        let sum = 0;
        while (n != 0) {
            sum += n % 10;
            n = parseInt(n / 10, 10);
        }
 
        return sum;
    }
     
    let arr = [ 4, 9, 15 ];
       
    let n = arr.length;
    let total_sum = 0;
   
    // Iterate through the array
    for (let i = 0; i < n; i++) {
        if (countOne(arr[i]))
            total_sum += sumDigits(arr[i]);
    }
   
    document.write(total_sum);
 
</script>
Producción: 

15

 

Publicación traducida automáticamente

Artículo escrito por isa_aanchal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *