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>
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