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

C++ . में लेक्सिकोग्राफिकल नंबर

मान लीजिए कि हमारे पास एक पूर्णांक n है। हमें लेक्सिकोग्राफिक क्रम में 1 से n वापस करना होगा। तो उदाहरण के लिए जब 13 दिया जाता है, तो आउटपुट [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9] होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • आकार n के एक सरणी को परिभाषित करें

  • वर्तमान:=1

  • मेरे लिए 0 से n - 1 की सीमा में

    • ret[i] :=curr

    • अगर curr * 10 <=n, तो curr सेट करें:=curr * 10

    • अन्यथा

      • अगर curr>=n, तो curr :=curr / 10

      • 1 द्वारा कर्व बढ़ाएं

      • जबकि curr 10 से विभाज्य है, तो curr :=curr / 10

  • वापसी रिट

उदाहरण(C++)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector<int> lexicalOrder(int n) {
      vector <int> ret(n);
      int curr = 1;
      for(int i = 0; i < n; i++){
         ret[i] = curr;
         if(curr * 10 <= n){
            curr*= 10;
         } else {
            if(curr>= n)curr /= 10;
            curr += 1;
            while(curr % 10 == 0)curr/=10;
         }
      }
      return ret;
   }
};
   main(){
   Solution ob;
   print_vector(ob.lexicalOrder(20));
}

इनपुट

20

आउटपुट

[1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9, ]

  1. C++ में Emirp नंबर

    एमिर्प संख्या एक विशेष प्रकार की संख्या है जो एक अभाज्य संख्या है जिसके अंकों को उलटने पर एक अन्य अभाज्य संख्या बनती है (यह अभाज्य संख्या मूल संख्या से भिन्न होती है)। एमिर्प प्राइम का उल्टा है। कुछ अभाज्य संख्याएँ जो emirp नहीं हैं वे हैं पैलिंड्रोमिक अभाज्य और एकल अंक अभाज्य संख्याएँ। कुछ ए

  1. सी++ में डुडेनी नंबर्स

    संख्या सिद्धांत में परिभाषित एक गणितीय संख्या (विकिपीडिया)। नंबर हेनरी डुडेनी . द्वारा खोजा गया था . इसका गणितीय सूत्र है - यहाँ, हमें एक पूर्णांक n दिया गया है। हमारा काम जांच करना है कि दिया गया नंबर n एक डुडनी नंबर है या नहीं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: एन =17592 आ

  1. सी++ में सबसे बड़ा बीएसटी सबट्री

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसका सबसे बड़ा सबट्री ढूंढ़ना होगा जहां सबसे बड़ा मतलब सबट्री जिसमें सबसे बड़ी संख्या में नोड्स हों। तो, अगर इनपुट पसंद है, तो आउटपुट 3 होगा, क्योंकि इस मामले में सबसे बड़ा बीएसटी सबट्री हाइलाइट किया गया है। इसे हल करने के लिए, हम इन चरणों का पालन करे