Rumah >pembangunan bahagian belakang >C++ >Apakah tatasusunan binari selepas operasi penukaran julat M?

Apakah tatasusunan binari selepas operasi penukaran julat M?

王林
王林ke hadapan
2023-09-04 11:49:061420semak imbas

Apakah tatasusunan binari selepas operasi penukaran julat M?

Di sini kita akan melihat masalah. Kami mempunyai tatasusunan binari. Ia mempunyai n unsur. Setiap elemen sama ada 0 atau 1. Pada mulanya, semua elemen adalah 0. Sekarang kami akan menyediakan arahan M. Setiap arahan akan mengandungi indeks permulaan dan akhir. Jadi perintah(a, b) bermaksud arahan itu akan digunakan daripada elemen pada kedudukan a kepada elemen pada kedudukan b. Perintah ini akan menogol nilai. Jadi ia bertukar dari indeks ath ke indeks bth. Soalannya mudah sahaja. Periksa algoritma untuk mendapatkan idea.

Algoritma

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

Contoh

#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);
}

Output

0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 1 1 1 1 0

Atas ialah kandungan terperinci Apakah tatasusunan binari selepas operasi penukaran julat M?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam