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

Apakah tatasusunan binari selepas operasi penukaran julat M?

王林
Lepaskan: 2023-09-04 11:49:06
ke hadapan
1437 orang telah melayarinya

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
Salin selepas log masuk

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);
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan