Maison  >  Article  >  développement back-end  >  Comptez le nombre d'éléments dans le tableau. Le nombre de 1 dans sa représentation binaire est un multiple de K.

Comptez le nombre d'éléments dans le tableau. Le nombre de 1 dans sa représentation binaire est un multiple de K.

WBOY
WBOYavant
2023-09-19 22:09:08726parcourir

Les bits définis sont la représentation binaire de 0 et 1. Ce numéro 1 est appelé bit de réglage dans un ordinateur. Prenons un exemple pour comprendre le calcul des bits définis -

Prenons un exemple pour comprendre le calcul du setbit -

Le bit défini de l'entier 96 est calculé comme suit :

Comptez le nombre déléments dans le tableau. Le nombre de 1 dans sa représentation binaire est un multiple de K.

Supposons que nous voulions définir les bits sur la somme de 96. Ainsi, selon la représentation ci-dessus, nous définirons le bit 1 sur ces éléments du tableau et leur somme sera de 96. De cette façon nous formerons 2 groupes de bits. Ainsi, si nous définissons la valeur K sur 2, les bits de réglage de 96 en sont des multiples.

Dans ce programme, nous allons résoudre le problème de comptage d'éléments de tableau où le nombre de bits définis est un multiple de K.

Algorithme

  • Nous utiliserons un fichier d'en-tête nommé 'bits/stdc++.h' pour démarrer le programme, qui contient toutes les bibliothèques de modèles standard de C++.

  • Nous créons une définition de fonction appelée ‘find_bitcount’, qui accepte trois paramètres, arr, n et k, et est définie comme suit −

    arr[] - Obtenez l'entrée du tableau à partir de la fonction principale du tableau.

    n − longueur du tableau

    k - Vérifie la divisibilité du nombre de bits avec le réglage.

    Cela comptera le nombre total de bits définis dans les éléments du tableau.

  • Nous stockons ensuite ‘0’ dans la variable ‘ans’, qui gardera une trace du nombre de nombres qui satisfont à la condition.

  • Nous démarrons la boucle for pour parcourir chaque élément et stocker l'élément du tableau, c'est-à-dire 'arr[i]' dans la variable 'x' qui satisfait la condition dans la boucle while suivante pour vérifier les paramètres de bits totaux Conditions de comptage . De cette façon, la fonction initialise ‘x’ à la valeur de l’élément du tableau.

  • Ensuite, la variable ‘setBitsCount’ est initialisée à ‘0’, ce qui gardera une trace des bits définis de l’élément actuel du tableau.

  • Ensuite, nous créons une boucle while pour vérifier si x (l'élément du tableau stocké dans x) est supérieur à 0 et procédons comme suit :

    • setBitsCount += x & 1 - Utilisez l'opérateur ET au niveau du bit dans une boucle et 1 pour déterminer si le bit le moins significatif de x est 1.

    • x = x >> 1 − Si le résultat est 1, augmentez le nombre de chiffres défini de 1. Utilisez ensuite l'opérateur >> dans la boucle pour décaler x 1 bit vers la droite afin d'éliminer le bit le moins significatif.

  • Maintenant, utilisez l'instruction if pour vérifier si 'setBitsCount' est divisible par 'k', utilisez l'opérateur '%' et est égal à '0', puis l'élément actuel du tableau remplit la condition et incrémente la variable 'ans' par '1'.

  • Après avoir traité toutes les conditions ci-dessus, la fonction renvoie la valeur de ‘ans’, qui définit le nombre total défini de chiffres des éléments du tableau.

  • Allez-y, démarrez la fonction principale et déclarez tous les éléments du tableau. Nous initialisons ensuite la variable ‘n’ pour trouver la taille du tableau, et initialisons la variable ‘K’ à ‘2’, qui vérifiera si l’élément du tableau est un multiple de K.

  • Enfin, dans l'instruction print, nous appelons la définition de fonction nommée 'find_bitcount()' et obtenons le résultat.

Exemple

Dans ce programme, nous implémenterons le comptage d'un élément de tableau dont le bit défini est un multiple de K.

#include <bits/stdc++.h>
#include <bits/stdc++.h>
using namespace std;

// Function to find the count of numbers
int find_bitcount(int arr[], int n, int k) {
   int ans = 0;
   for (int i = 0; i < n; i++) {
      int x = arr[i];
      int setBitsCount = 0;

      // Calculate the set-bits count of the element x
      while (x > 0) {
         setBitsCount += x & 1;
         x = x >> 1;
      }

      // Check if the setbits count
      // is divisible by K
      if (setBitsCount % k == 0)
      ans++;
   }
   return ans;
}
int main() {
   int arr[] = { 6, 845, 4, 168, 7896 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int K = 2;
   cout << "There are "<<find_bitcount(arr, n, K)<<" array element whose setbits are in a multiple of K";
   return 0;
}

Sortie

There are 3 array element whose setbits are in a multiple of K

Conclusion

Nous avons exploré le concept de nombre d'éléments de tableau, où le nombre de chiffres est un multiple de K. Dans ce programme, une fonction est définie pour calculer le nombre total d'éléments d'un nombre défini d'éléments du tableau. Nous observons ensuite comment le nombre défini de bits est décalé via l'opérateur >> et utilisons une instruction conditionnelle pour vérifier combien d'éléments du tableau ont été transmis au nombre défini de bits. Enfin, nous imprimons simplement les résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:SQL utilisant C/C++ et SQLiteArticle suivant:SQL utilisant C/C++ et SQLite