Maison > développement back-end > C++ > 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
Libérer: 2023-09-17 15:53:08
avant
1169 Les gens l'ont consulté

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.
Copier après la connexion

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;
}
Copier après la connexion

Sortie

Maximum number: 111
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal