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

C++ में लेक्सिकोग्राफिकल संख्याएं


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

हल करने के चरण

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

  • curr := 1

  • i को 0 से n-1 तक लूप करें

    • ret[i] := curr

    • यदि curr * 10 <= n, तो curr := curr * 10 सेट करें

    • अन्यथा

      • यदि curr >= n, तो curr := curr / 10

      • curr को 1 से बढ़ाएं

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

  • ret वापस करें

उदाहरण (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 Numbers)

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

  1. C++ में डुडनी नंबर (Dudeney Numbers) C++ में डुडनी नंबर (Dudeney Numbers)

    संख्या सिद्धांत में परिभाषित एक गणितीय संख्या एक दी गई संख्या आधार में एक प्राकृतिक संख्या है जो दूसरी प्राकृतिक संख्या के पूर्ण घन के बराबर होती है जैसे कि पहली प्राकृतिक संख्या का अंक योग दूसरी संख्या के अंक योग के बराबर होता है (विकिपीडिया)। इस संख्या की खोज हेनरी डुडनी ने की थी। इसका गणितीय सू

  1. C++ में सबसे बड़ा BST सबट्री - अधिकतम नोड्स वाला BST खोजें C++ में सबसे बड़ा BST सबट्री - अधिकतम नोड्स वाला BST खोजें

    समस्या विवरण मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें उसका सबसे बड़ा सबट्री ढूंढना है जहां सबसे बड़ा का अर्थ है सबसे अधिक नोड्स वाला सबट्री। उदाहरण के लिए, यदि इनपुट इस तरह का ट्री है: तो आउटपुट 3 होगा, क्योंकि इस मामले में सबसे बड़ा BST सबट्री हाइलाइट किया गया है। समाधान दृष्टिकोण पोस्ट-ऑर्ड