Maison > Article > développement back-end > En C++, supprimez un bit d'un 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.
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.
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.
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] == '0' && flag == false) { flag = true; continue; } else res[j++] = str[i]; } // printing the resulting string. cout << "Maximum number: " << res; return 0; }
Maximum number: 111
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>
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!