हमें एक पूर्णांक सरणी दी गई है और कार्य जोड़े की कुल संख्या की गणना करना है जो दिए गए सरणी मानों का उपयोग करके बनाई जा सकती हैं जैसे कि जोड़े पर OR ऑपरेशन के परिणामस्वरूप मूल्य होगा दी गई जोड़ी में MAX मान से कम।
OR ऑपरेशन के लिए सत्य तालिका नीचे दी गई है
A | B | AVB |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
इनपुट - int arr[] ={2, 5, 1, 8, 9}
आउटपुट − बिटवाइज़ या मैक्स से कम वाले युग्मों की संख्या है − 3
स्पष्टीकरण -
X | Y | X V Y |
2 | 5 | 7>5=FALSE |
2 | 1 | 3>2=FALSE |
2 | 8 | 10>8=FALSE |
2 | 9 | 11>9=FALSE |
5 | 1 | 5=5 TRUE |
5 | 8 | 13>8=FALSE |
5 | 9 | 13>9=FALSE |
1 | 8 | 9>8=FALSE |
1 | 9 | 10>9=FALSE |
8 | 9 | 9=9=TRUE |
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक जोड़ी बनाने के लिए पूर्णांक तत्वों की एक सरणी इनपुट करें
-
एक सरणी के आकार की गणना करें आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें
-
OR ऑपरेशन के साथ बनाए गए युग्मों को संग्रहीत करने के लिए एक अस्थायी चर गणना बनाएँ, जिसका मान युग्म के बीच MAX मान से कम या उसके बराबर हो
-
किसी सरणी के आकार-1 तक i से 0 तक के लिए लूप प्रारंभ करें
-
लूप के अंदर, एक और लूप फॉर जे से i+1 तक एक ऐरे के आकार तक शुरू करें
-
लूप के अंदर, IF arr[i] | . की जाँच करें arr[j] <=max(arr[i], arr[j]) फिर गिनती को 1 से बढ़ा दें
-
गिनती वापस करें
-
परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; //Count pairs with bitwise OR less than Max int Pair_OR(int arr[], int size){ int count = 0; for (int i = 0; i lt; size - 1; i++){ for (int j = i + 1; j lt; size; j++){ if ((arr[i] | arr[j]) lt;= max(arr[i], arr[j])){ count++; } } } return count; } int main(){ int arr[] = { 4, 8, 9, 10, 23}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of pairs with bitwise OR less than Max are: "<<Pair_OR(arr, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of pairs with bitwise OR less than Max are − 3