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

प्राकृतिक संख्याओं की गणना करें जिनके सभी क्रमचय C++ में उस संख्या से अधिक हैं


हमें एक प्राकृत संख्या दी गई है मान लीजिए, संख्या और कार्य उन सभी प्राकृत संख्याओं की गणना करना है जिनके सभी क्रमपरिवर्तन उस संख्या से अधिक हैं।

हम निम्नलिखित शर्तों के साथ काम कर रहे हैं -

  • डेटा केवल प्राकृतिक संख्या होना चाहिए

  • किसी प्राकृत संख्या के सभी संभावित क्रमपरिवर्तन या व्यवस्था दी गई संख्या के बराबर या उससे अधिक होनी चाहिए। उदाहरण के लिए, संख्या 20 है

    • 1 यानी 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20<से शुरू होकर 20 तक की सभी संख्याओं पर विचार करें। /पी>

    • अब उन संख्याओं की जाँच करें जिनकी व्यवस्था या क्रमचय दी गई संख्या के बराबर या उससे अधिक है अर्थात 20। संख्याएँ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11=11, 12<21, 13<31 हैं। , 14<41, 15<51, 16<61, 17<71, 18<81, 19<91। तो गिनती 18 होगी।

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

आउटपुट - गिनती 9 है

स्पष्टीकरण - संख्या 1, 2, 3, 4, 5, 6, 7, 8, 9 वे संख्याएँ हैं जो किसी भी तरह से व्यवस्थित करने पर संख्या के बराबर होती हैं।

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

आउटपुट - गिनती 12 है

स्पष्टीकरण - संख्याएं 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12<21, 13<31 वे संख्याएं हैं जो किसी भी तरीके से व्यवस्थित करने पर संख्या से बड़ी के बराबर होती हैं।

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

  • संख्या संख्या का मान डालें

  • max_size को 9 पर सेट करें क्योंकि हमेशा कम से कम 9 संख्याएँ होंगी जिनका क्रमपरिवर्तन स्वयं संख्या के बराबर या उससे अधिक होगा।

  • लूप को 0 से max_size तक शुरू करें

  • लूप के अंदर, एक सूची प्रकार चर बनाएं और जांचें कि क्या मैं संख्या से कम या बराबर है यदि हां तो सूची में i डालें और गिनती को 1 से बढ़ाएं

  • सूची को अंत से शुरुआत तक पार करें और पहले तत्व से 9 तक एक और लूप शुरू करें।

  • जांचें कि क्या अस्थायी <=num फिर सूची में सबसे आगे अस्थायी धक्का दें और गिनती को 1 से बढ़ाएं

  • गिनती लौटाएं

  • परिणाम प्रिंट करें।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
//function to Count natural numbers whose
//all permutation are greater than that number
void count(int num){
   int count = 0;
   int max_size = 9;
   for (int i = 1; i <= max_size; i++){
      list<int> lists;
      if (i <= num){
         //insert element at the end of the list
         lists.push_back(i);
         count = count + 1;
      }
      //iterator starts from the last of the list
      for(auto iter = lists.end(); iter != lists.begin(); ++iter){
         int first_ele = lists.front();
         lists.pop_front();
         for (int next = first_ele%10; next <= 9; next++){
            int temp = first_ele*10 + next;
            if (temp <= num){
               lists.push_front(temp);
               count++;
            }
         }
      }
   }
   cout<<"count of num "<<num <<" is "<<count<<endl;
}
int main(){
   count(1);
   count(9);
   count(7);
   count(0);
   count(12);
   return 0;
}

आउटपुट

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

count of num 1 is 1
count of num 9 is 9
count of num 7 is 7
count of num 0 is 0
count of num 12 is 11

  1. 10^6 से कम की सभी संख्याओं की गणना करें जिनका न्यूनतम अभाज्य गुणनखंड N C++ है

    हमें एक अभाज्य संख्या दी गई है मान लीजिए, संख्या और कार्य 10^6 से कम की सभी संख्याओं की गणना करना है जिनका न्यूनतम अभाज्य गुणनखंड संख्या के बराबर है। उदाहरण के लिए Input − num = 7 Output − Number of prime factors = 38095 Input − num = 3 Output − Number of prime factors = 166

  1. किसी दिए गए नंबर से सख्ती से कम संख्या को प्रिंट करें जैसे कि उसके सभी अंक C++ में अलग हों

    इस समस्या में, हमें एक संख्या n दी गई है। हमारा काम n से छोटी सबसे बड़ी संख्या को इस तरह प्रिंट करना है कि उसके सभी अंक अलग-अलग हों। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं Input: n = 2332 Output: 2319 इस समस्या को हल करने के लिए, हम संख्याओं की गिनती को n से 0 तक उलट देते हैं। और अलग-अलग अं

  1. C++ में N से कम या उसके बराबर सभी अभाज्य संख्याएँ प्रिंट करें

    इस समस्या में, हमें एक संख्या N दी जाती है और हमें N से कम या उसके बराबर सभी अभाज्य संख्याओं को प्रिंट करना होता है। आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं - Input: 10 Output: 2 3 5 7 अभाज्य संख्या एक संख्या है जिसे केवल एक और स्वयं संख्या से विभाजित किया जा सकता है। उदाहरण:2, 3.