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

(i, j) के जोड़े की संख्या जैसे कि ((n% i)% j)% n को C++ में अधिकतम किया जाता है

हमें इनपुट के रूप में एक संख्या संख्या दी जाती है। लक्ष्य रूप (i,j) के जोड़े की संख्या ज्ञात करना है जैसे कि ((num%i)%j)%num अधिकतम हो और i और j दोनों रेंज [1,num] में हों।

आइए उदाहरणों के साथ समझते हैं

इनपुट - संख्या=4

आउटपुट − (i, j) के युग्मों की संख्या इस प्रकार है कि ((n % i) % j) % n अधिकतम हो − 3

स्पष्टीकरण - जोड़े होंगे:(3,2), (3,3), (3,4)

इनपुट - संख्या=6

आउटपुट − (i, j) के युग्मों की संख्या इस प्रकार है कि ((n % i) % j) % n अधिकतम हो − 4

स्पष्टीकरण - जोड़े होंगे:(4,3, (4,4), (4,5), (4,6)

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

हम दो दृष्टिकोणों का उपयोग करके इस समस्या को हल करेंगे। भोले दृष्टिकोण में, अधिकतम शेष मूल्य प्राप्त किया जा सकता है यदि हमारे पास इसका आधा हिस्सा है। अस्थायी =संख्या / 2 +1 सेट करें। अधिकतम शेषफल को कुल =num% अस्थायी के रूप में सेट करें। i,j के लिए 0 से num तक ट्रैवर्स करें और i,j ऐसे खोजें कि ((num% i) % j)% num ==कुल।

  • इनपुट संख्या को पूर्णांक के रूप में लें।

  • फ़ंक्शन maximized_pair(int num) संख्या लेता है और (i, j) के जोड़े की गिनती देता है जैसे कि ((n% i)% j)% n अधिकतम हो।

  • प्रारंभिक गणना 0 के रूप में लें।

  • अधिकतम शेषफल के लिए संख्या घटाकर आधा कर दें। अस्थायी सेट करें =((संख्या / 2) + 1)।

  • अधिकतम शेष की गणना कुल =num% अस्थायी के रूप में करें;

  • जोड़े के लिए (i, j)। [1, num] की श्रेणी में i और j के लिए दो for लूप का उपयोग करके ट्रैवर्स करें।

  • यदि मान ((संख्या% i)% j)% संख्या कुल, वेतन वृद्धि गणना के बराबर है।

  • दोनों लूप के अंत में परिणाम के रूप में वापसी की गणना करें।

कुशल दृष्टिकोण

अधिकतम शेष कुल =num% temp . के रूप में प्राप्त करें जहां अस्थायी num/2+1 . है . अब युग्मों (i,j) के लिए हमें अधिकतम शेषफल प्राप्त करने के लिए संख्या के रूप में i को चुनना होगा। कुल को अधिकतम बनाने के लिए हम कुल से संख्या तक j को चुन सकते हैं। तो जोड़ियों की संख्या संख्या-कुल होगी ।

मामले में num=2 , वापसी 4 जोड़े के रूप में (1,1), (1,2), (2,1), (2,2) होंगे और संख्या-कुल का उपयोग करके गणना नहीं की जाएगी।

  • इनपुट संख्या को पूर्णांक के रूप में लें।

  • फ़ंक्शन maximized_pair(int num) संख्या लेता है और (i, j) के जोड़े की गिनती देता है जैसे कि ((n% i)% j)% n अधिकतम हो।

  • प्रारंभिक गणना 0 के रूप में लें।

  • अगर num==2, वापसी 4.

  • अन्यथा अधिकतम शेषफल के लिए संख्या घटाकर आधा कर दें। अस्थायी सेट करें =((संख्या / 2) + 1)।

  • अधिकतम शेष की गणना कुल =num% अस्थायी के रूप में करें;

  • गिनती सेट करें=संख्या-कुल

  • अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण (बेवकूफ दृष्टिकोण)

#include<bits/stdc++.h>
using namespace std;
int maximized_pair(int num){
   int count = 0;
   int temp = ((num / 2) + 1);
   int total = num % temp;
   for (int i = 1; i <= num; i++){
      for (int j = 1; j <= num; j++){
         int check = ((num % i) % j) % num;
         if (check == total){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int num = 10;
   cout<<"Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: "<<maximized_pair(num);
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: 6

उदाहरण (कुशल दृष्टिकोण)

#include<bits/stdc++.h>
using namespace std;
int maximized_pair(int num){
   int count = 0;
   if (num == 2){
      return 4;
   }
   else{
      int temp = ((num / 2) + 1);
      int total = num % temp;
      count = num - total;
   }
   return count;
}
int main(){
   int num = 10;
   cout<<"Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: "<<maximized_pair(num);
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs of (i, j) such that ((n % i) % j) % n is maximized are: 6

  1. k तत्वों को इस प्रकार रखें कि न्यूनतम दूरी C++ में अधिकतम हो

    इस समस्या में, हमें n बिंदुओं की एक सरणी दी गई है जो एक ही रेखा पर स्थित हैं। हमारा काम सरणी के k तत्वों को इस तरह रखना है कि उनके बीच की न्यूनतम दूरी अधिकतम हो। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - सरणी ={} आउटपुट - इस समस्या को हल करने के लिए, हमें अधिकतम संभव न्यूनतम दूरी ज्ञात

  1. न्यूनतम x ऐसे खोजें कि (x% k) * (x / k) ==n C++ . में

    दो धनात्मक पूर्णांक n और k दिए गए हैं, और हमें धनात्मक पूर्णांक x ज्ञात करना है, जैसे कि (x% k)*(x / k) n के समान हो। तो अगर n और k क्रमशः 4 और 6 हैं, तो आउटपुट 10 होगा। तो (10% 6) * (10 / 6) =4. जैसा कि हम जानते हैं कि x% k का मान रेंज [1 से k - 1] (0 शामिल नहीं है) में होगा। * के) / (एक्स% के) +

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc