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

C++ में समान अंकों के समुच्चय के साथ अगली बड़ी संख्या ढूंढना


इस समस्या में, हमें एक तत्व N दिया जाता है। हमें समान अंकों के समुच्चय के साथ अगली बड़ी संख्या ढूंढनी है। हमें N से बड़ी सबसे छोटी संख्या ढूंढनी है जिसमें समान अंक हों।

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

इनपुट

N = "92534"

आउटपुट

92543

समाधान दृष्टिकोण

अगला बड़ा तत्व ढूंढने की समस्या का एक सरल समाधान निम्नलिखित दृष्टिकोण द्वारा है –

  • संख्या को कम से कम महत्वपूर्ण बिट से सबसे महत्वपूर्ण बिट तक पार करें। और तब रुकें जब वर्तमान तत्व पिछले तत्व से छोटा हो।

  • इसके बाद शेष सरणी में सबसे छोटे तत्व को खोजें। और सबसे छोटी संख्या ढूंढें और इसे संख्या के साथ स्वैप करें।

  • फिर शेष उपसरणी को सॉर्ट करें और आउटपुट वापस करें।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream> #include <cstring> #include <algorithm> using namespace std; void findNextGreater(char number[], int n) {    int i, j;    for (i = n-1; i > 0; i--)       if (number[i] > number[i-1])          break;    if (i==0) {       cout<<"Next number is not possible";       return;    }    int x = number[i-1], smallest = i;    for (j = i+1; j < n; j++)       if (number[j] > x && number[j] < number[smallest])          smallest = j;    char temp = number[smallest];    number[smallest] = number[i-1];    number[i-1] = temp;    sort(number + i, number + n);    cout<<number;    return; } int main(){    char number[] = "92534";    int n = strlen(number);    cout<<"The next number with same set of digits is ";    findNextGreater(number, n);    return 0; }

आउटपुट

The next number with same set of digits is 92543

  1. - C++ में समान सेट बिट्स वाले अधिकतम सन्निहित सरणी तत्व

    हमें पूर्णांक तत्वों की एक असॉर्ट की गई सरणी दी गई है और कार्य है दो प्रमुख चीजों की गणना करना: समान संख्या में सेट बिट्स वाले तत्व समान सेट बिट्स वाले तत्व सन्निहित प्रकृति के भी होने चाहिए। इनपुट int arr[] = { 5, 8, 1, 2, 9, 12 } आउटपुट: समान संख्या में सेट बिट्स वाले अधिकतम सन्निहित सरणी तत्व:

  1. - C++ प्रोग्राम: दी गई संख्या से बड़ा अगला पूर्ण वर्ग ज्ञात करना

    मान लें हमारे पास एक संख्या n है। हमारा कार्य n की अगली पूर्ण वर्ग संख्या ज्ञात करना है। इसलिए यदि संख्या n = 1000 है, तो अगली पूर्ण वर्ग संख्या 1024 = 322 है। इसे हल करने के लिए, हमें दी गई संख्या n का वर्गमूल प्राप्त करना होगा, फिर उसका फ्लोर लेना होगा, उसके बाद (फ्लोर मान + 1) का वर्ग प्रदर्शित

  1. - C++ प्रोग्राम: N अंकों की संख्या ज्ञात करना जो D से विभाज्य हो

    मान लें हमारे पास दो संख्याएं N और D हैं। हमें N अंकों की संख्या ज्ञात करनी है, जो D से विभाज्य हो। यदि N 3 है, और D 5 है, तो संख्या 500 हो सकती है। इसे आसानी से हल किया जा सकता है। यदि D 10 है और N 1 है, तो यह असंभव होगा। हम D रख सकते हैं, और मान लें D में m अंक हैं, फिर N - m संख्या में 0 जोड़कर इ