Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các cặp có Bitwise XOR là số ODD trong C ++


Chúng tôi được cung cấp một mảng số nguyên và nhiệm vụ là đếm tổng số cặp có thể được tạo thành bằng cách sử dụng các giá trị mảng đã cho để phép toán XOR trên các cặp sẽ dẫn đến ODD giá trị.

Bảng sự thật cho hoạt động XOR được đưa ra bên dưới

A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0

Đầu vào - int arr [] ={2, 8, 1, 5, 11}

Đầu ra - Đếm số cặp có Bitwise XOR là số ODD là - 6

Giải thích

Giải thích -

a1 a2 a1 XOR a2
2 8 10
2 1 3
2 5 7
2 11 9
8 1 9
8 5 13
8 11 3
1 5 4
1 11 10
5 11 14

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập một mảng các phần tử số nguyên để tạo thành một cặp

  • Tính toán kích thước của một mảng, truyền dữ liệu vào hàm để xử lý thêm

  • Tạo số lượng biến tạm thời để lưu trữ các cặp được tạo bằng phép toán XOR dưới dạng giá trị lẻ.

  • Bắt đầu vòng lặp FOR từ i đến 0 cho đến hết kích thước của một mảng

  • Bây giờ, hãy tính các cặp giá trị lẻ trong một mảng dưới dạng số đếm * (kích thước - số lượng)

  • Trả lại tiền lẻ

  • In kết quả

Ví dụ

#include <iostream>
using namespace std;
//Count pairs with Bitwise XOR as ODD number
int XOR_Odd(int arr[], int size){
   int count = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] % 2 == 0){
         count++;
      }
   }
   int odd = count * (size-count);
   return odd;
}
int main(){
   int arr[] = { 6, 1, 3, 4, 8, 9};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs with Bitwise XOR as ODD number are: "<<XOR_Odd(arr, size);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count of pairs with Bitwise XOR as ODD number are: 9