Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ का उपयोग करके XOR को अधिकतम बनाने के लिए हटाए जाने वाले तत्वों की न्यूनतम संख्या।

समस्या कथन

एक संख्या N को देखते हुए। कार्य N के बीच में हटाए जाने वाले तत्वों की न्यूनतम संख्या को खोजना है ताकि शेष तत्वों से प्राप्त XOR अधिकतम हो।

एल्गोरिदम

1. If n is 1 or 2 then there is no need to remove any element. Hence answer is zero
2. Find a number which is power of 2 and greater than or equal to. Let us call this number as nextNumber
   2.1. If n == nextNumber or n == (nextNumber – 1) then answer is 1
   2.2. If n = (nextNumber -2) then answer is 0
3. If n is an even then answer is 1 otherwise 2

उदाहरण

#include <iostream>
using namespace std;
int nextPowerOf2(int n){
   if (n && !(n & (n - 1))) {
      return n;
   }
   int cnt = 0;
   while (n) {
      n = n / 2;
      ++cnt;
   }
   return (1 << cnt);
}
int elmentsToBeRemoved(int n){
   if (n == 1 || n == 2) {
      return 0;
   }
   int nextNumber = nextPowerOf2(n);
   if (n == nextNumber || n == nextNumber -1) {
      return 1;
   } else if (n == nextNumber - 2) {
      return 0;
   } else if (n & 1) {
      return 2;
   } else {
      return 1;
   }
}
int main(){
   int n = 10;
   cout << "Numbers to be removed = " <<
   elmentsToBeRemoved(n) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Numbers to be removed = 1s

  1. तत्वों की न्यूनतम संख्या जिन्हें C++ का उपयोग करके सरणी को अच्छा बनाने के लिए हटाया जाना चाहिए।

    समस्या कथन एक सरणी गिरफ्तारी को देखते हुए, कार्य सरणी को अच्छा बनाने के लिए हटाए जाने वाले तत्वों की न्यूनतम संख्या को खोजना है। अनुक्रम a1, a2, a3. . .an को अच्छा कहा जाता है यदि प्रत्येक तत्व a[i] के लिए एक तत्व a[j] (i के बराबर नहीं है) मौजूद है जैसे कि a[i] + a[j] दो की शक्ति है। arr1[] = {1,

  1. C++ में एक स्ट्रिंग पैलिंड्रोम बनाने के लिए विलोपन की न्यूनतम संख्या।

    समस्या कथन आकार एन की एक स्ट्रिंग को देखते हुए। कार्य स्ट्रिंग पैलिंड्रोम बनाने के लिए वर्णों की न्यूनतम संख्या को हटाना है। यदि दी गई स्ट्रिंग abcda है तो हम इसे पैलिंड्रोम बनाने के लिए पहले और अंतिम को छोड़कर किन्हीं भी 2 वर्णों को हटा सकते हैं। अगर हम अक्षर b और c को हटाते हैं तो ada स्ट्रिं

  1. C++ का प्रयोग करते हुए संख्या के गुणनखंडों का न्यूनतम योग ज्ञात कीजिए।

    यहां हम देखेंगे कि किसी दी गई संख्या के कारकों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं - 12 =12 * 1 (12 + 1 =13) 12 =2 * 6 (2 + 6 =8) 12 =3 * 4 (3 + 4 =7) 12 =2 * 2 * 3 (2 + 2 + 3 =7) न्यूनतम योग 7 है। हम एक संख्या लेंगे और न्यून