Maison  >  Article  >  développement back-end  >  En C++, supprimez un bit d'un nombre binaire pour obtenir la valeur maximale

En C++, supprimez un bit d'un nombre binaire pour obtenir la valeur maximale

PHPz
PHPzavant
2023-09-17 15:53:081128parcourir

En C++, supprimez un bit dun nombre binaire pour obtenir la valeur maximale

Discutez d'un problème étant donné un nombre binaire. Nous devons en retirer un peu pour que le nombre restant soit le maximum parmi toutes les autres options comme

Input : N = 1011
Output: 111
Explanation: We need to remove one bit so removing 0 bit will give a maximum number than removing any 1’s bit. 111 > 101, 011.

Input: 111
Output: 11
Explanation: Since all the bits are 1 so we can remove any bit.

Méthode de solution

Méthode de force brute

La méthode de force brute donnera le nombre maximum de résultats, c'est-à-dire petit à petit Supprimez, comparez différents résultats et obtenez un maximum de résultats.

Mais cela peut être fait en utilisant une approche efficace, c'est-à-dire si nous supprimons un minimum de bits redondants.

Méthodes efficaces

Les méthodes efficaces ont un impact minimal sur les résultats.

  • Tout d’abord, commencez par la droite et parcourez les éléments.

  • Recherchez 0 et supprimez-le sur le premier compteur.

  • Si 0 n'est pas trouvé, supprimez tous les bits.

Exemple

Code C++ pour une méthode efficace

#include <bits/stdc++.h>
using namespace std;
int main(){
    string str = "1011";
    bool flag = false;
    int n = str.length();
    // Initialising new array for
    char res[n - 1];
    int j = 0;
    // traversing through the binary number from right.
    for (int i = 0; j < n - 1; i++) {
        // if 0 is found then skip it.
        if (str[i] == &#39;0&#39; && flag == false) {
            flag = true;
            continue;
        }
        else
            res[j++] = str[i];
    }
    // printing the resulting string.
    cout << "Maximum number: " << res;
    return 0;
}

Sortie

Maximum number: 111

Le code ci-dessus illustre

  • l'utilisation d'une variable flag afin qu'un seul 0 soit éliminé.

  • Initialisez le tableau de caractères res pour stocker le numéro de résultat.

  • La boucle se déroulera jusqu'à n-1 car nous devons stocker un élément de moins que le nombre d'origine.

  • La boucle se déroulera jusqu'au n-1. p>

Conclusion

Dans ce tutoriel, nous avons discuté de la recherche du nombre maximum après avoir supprimé un chiffre. Nous avons discuté de deux façons de résoudre ce problème.

Nous avons également écrit du code C++ pour cela et nous pouvons écrire ces codes dans n'importe quel autre langage comme C, Java, Python, etc. Nous espérons que vous avez trouvé ce tutoriel utile.

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