Cho một mảng, chúng ta phải tìm số cặp có Bitwise OR là một số lẻ. Hãy xem ví dụ.
Đầu vào
arr = [1, 2]
Đầu ra
1
Chỉ có một cặp có Bitwise OR là một số lẻ. Và cặp này là (1, 2).
Thuật toán
- Khởi tạo mảng với các số ngẫu nhiên.
- Khởi tạo số đếm bằng 0.
- Viết hai vòng lặp để lấy các cặp của mảng.
- Tính toán theo bitwise HOẶC giữa mọi cặp.
- Tăng số lượng nếu kết quả là số lẻ.
- Trả lại số lượng.
Thực hiện
Sau đây là cách thực hiện thuật toán trên trong C ++
#include <bits/stdc++.h> using namespace std; int getOddPairsCount(int arr[], int n) { int count = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if ((arr[i] | arr[j]) % 2 != 0) { count++; } } } return count; } int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int n = 10; cout << getOddPairsCount(arr, n) << endl; return 0; }
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
35