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

सी++ में अंकों ए और बी की समान मात्रा के साथ एन से अगली बड़ी संख्या

दिया गया N , , और B . A . की समान संख्या के साथ N से बड़ी संख्या ज्ञात कीजिए और बी अंक। आइए एक उदाहरण देखें।

N = 1234
A = 2
B = 3

हमें दी गई अंकों की संख्या की हर संभावना की जांच करने की आवश्यकता है। संख्या बनाने के लिए दो अंक हैं। और संख्या में प्रत्येक अंक की गणना समान होनी चाहिए।

एल्गोरिदम

  • प्रारंभिक ए, बी, और एन.

  • एक पुनरावर्ती क्रिया लिखें।

    • जांचें कि क्या वर्तमान संख्या N . से अधिक है और इसकी समान संख्या A . है और बी अंक।

    • यदि उपरोक्त शर्त पूरी होती है तो नंबर लौटाएं।

    • अंक A को परिणाम में जोड़ें।
    • परिणाम में अंक B जोड़ें।
    • उपरोक्त दो में से न्यूनतम संख्या के साथ फ़ंक्शन को पुनरावर्ती रूप से कॉल करें।

कार्यान्वयन

C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है

#include <bits/stdc++.h>
using namespace std;
long getNextGreaterElement(long result, int A, int A_Count, int B, int B_Count, int N) {
   if (result > 1e11) {
      return 1e11;
   }
   if (A_Count == B_Count && result >= N) {
      return result;
   }
   return min(getNextGreaterElement(result * 10 + A, A, A_Count + 1, B, B_Count, N),       getNextGreaterElement(result * 10 + B, A, A_Count, B, B_Count + 1, N));
}
int main() {
   int N = 1234;
   int A = 2;
   int B = 3;
   cout << getNextGreaterElement(0, A, 0, B, 0, N) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

2233

  1. केवल C++ में 3 और 8 अंकों वाली संख्या में कनवर्ट करें

    इस ट्यूटोरियल में, हम किसी संख्या को केवल 3 और 8 के रूप में अंकों में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक यादृच्छिक संख्या प्रदान की जाएगी। हमारा काम है कि संख्या में से 1 जोड़कर या घटाकर या संख्या के अंकों को किसी वांछित अंक में परिवर्तित करके इसके अंकों को केवल 3 और 8 में

  1. अंकों के साथ न्यूनतम संख्या और केवल 7 और C++ में दिया गया योग

    समस्या कथन भाग्यशाली संख्याएँ धनात्मक पूर्णांक होती हैं जिनके दशमलव निरूपण में केवल भाग्यशाली अंक 4 और 7 होते हैं। कार्य न्यूनतम भाग्यशाली संख्या ज्ञात करना है जिसमें n के बराबर अंकों का योग हो। उदाहरण यदि योग =22 है तो लकी नंबर 4477 है क्योंकि 4 + 4 + 7 + 7 =22 एल्गोरिदम 1. If sum is multiple of

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

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