Maison > développement back-end > C++ > Quel est le tableau binaire après les opérations de commutation de plage M ?

Quel est le tableau binaire après les opérations de commutation de plage M ?

王林
Libérer: 2023-09-04 11:49:06
avant
1412 Les gens l'ont consulté

Quel est le tableau binaire après les opérations de commutation de plage M ?

Ici, nous verrons un problème. Nous avons un tableau binaire. Il comporte n éléments. Chaque élément vaut 0 ou 1. Initialement, tous les éléments sont 0. Nous allons maintenant fournir la commande M. Chaque commande contiendra un index de début et de fin. Donc command(a, b) signifie que la commande sera appliquée de l’élément en position a à l’élément en position b. Cette commande fera basculer la valeur. Il passe donc de l'index ath à l'index bth. La question est simple. Examinez les algorithmes pour vous faire une idée.

Algorithme

toggleCommand(arr, a, b)

Begin
   for each element e from index a to b, do
      toggle the e and place into arr at its position.
   done
End
Copier après la connexion

Exemple

#include <iostream>
using namespace std;
void toggleCommand(int arr[], int a, int b){
   for(int i = a; i <= b; i++){
      arr[i] ^= 1; //toggle each bit in range a to b
   }
}
void display(int arr[], int n){
   for(int i = 0; i<n; i++){
      cout << arr[i] << " ";
   }
   cout << endl;
}
int main() {
   int arr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
   int n = sizeof(arr)/sizeof(arr[0]);
   display(arr, n);
   toggleCommand(arr, 3, 6);
   toggleCommand(arr, 8, 10);
   toggleCommand(arr, 2, 7);
   display(arr, n);
}
Copier après la connexion

Sortie

0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 1 1 1 1 0
Copier après la connexion

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