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

C++ में सबसे बड़ी K अंकों की संख्या जो X से विभाज्य हो


समस्या विवरण

इस समस्या में हम सबसे बड़ी K-अंकीय संख्या ढूंढने का प्रयास करेंगे जो X से विभाज्य हो। इस कार्य को करने के लिए हम सूत्र ((10^k) - 1) द्वारा सबसे बड़ी K अंकों की संख्या लेंगे। फिर जांचेंगे कि क्या संख्या X से विभाज्य है या नहीं, यदि नहीं, तो हम इस सूत्र का उपयोग करके सटीक संख्या प्राप्त करेंगे:

max - (max mod X)

उदाहरण

एक उदाहरण 5-अंकीय संख्या का है जो 29 से विभाज्य है। तो सबसे बड़ी 5-अंकीय संख्या 99999 है। यह 29 से विभाज्य नहीं है। अब सूत्र लागू करके हम प्राप्त करेंगे:

99999 - (99999 mod 29) = 99999 - 7 = 99992

संख्या 99992, 29 से विभाज्य है।

एल्गोरिदम

maxKDigit(k, x):
Begin
    max = (10^k) - 1
    if max is divisible by x, return max
    otherwise return max - (max mod x)
End

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;

long long maxKDigit(int k, int x) {
    // k अंकों की अधिकतम संख्या प्राप्त करें
    long long max = pow(10, k) - 1;

    if (max % x == 0) {
        return max;
    }
    return max - (max % x);
}

int main() {
    int k, x;
    cout << "Enter Digit Count(K) and Divisor(N): ";
    cin >> k >> x;
    cout << "Result is: " << maxKDigit(k, x);
    return 0;
}

आउटपुट

Enter Digit Count(K) and Divisor(N): 5 29
Result is: 99992

अधिक उदाहरण

K (अंक) X (भाजक) अधिकतम K-अंकीय परिणाम सत्यापन
5 29 99999 99992 99992/29 = 3448
6 87 999999 999978 999978/87 = 11494
3 7 999 994 994/7 = 142
4 13 9999 9997 9997/13 = 769

सामान्य सूत्र

सबसे बड़ी K-अंकीय संख्या = 10^K - 1
यदि (10^K - 1) % X == 0 तो उत्तर = 10^K - 1
अन्यथा उत्तर = (10^K - 1) - ((10^K - 1) % X)

समय जटिलता

O(1) - स्थिर समय गणना

बड़े K के लिए नोट

बड़े K के लिए, pow(10, k) ओवरफ्लो कर सकता है। long long (19 अंक तक) या बिग इंटीजर लाइब्रेरी का उपयोग करें।

// बड़े K के लिए स्ट्रिंग-आधारित दृष्टिकोण
string largestKDigitDivisible(int k, int x) {
    string max(k, '9');  // "999...9" k बार
    // बिग इंटीजर मॉड्यूलो और घटाव लागू करें
    // या बूस्ट मल्टीप्रिसिजन का उपयोग करें
}
  1. C++ में डेसिमल से हेक्साडेसिमल रूपांतरण C++ में डेसिमल से हेक्साडेसिमल रूपांतरण

    एक डेसिमल संख्या इनपुट के रूप में दी गई है, कार्य दी गई डेसिमल संख्या को हेक्साडेसिमल संख्या में बदलना है। कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और डेसिमल संख्या को आधार 10 के साथ दर्शाया जाता है और मान 0-9 से दर्शाए जाते हैं जबकि हेक्साडेसिमल संख्या में 0-15 से अंक होते

  1. C++ में डेसिमल से बाइनरी रूपांतरण C++ में डेसिमल से बाइनरी रूपांतरण

    एक डेसिमल संख्या इनपुट के रूप में दी गई है, कार्य दी गई डेसिमल संख्या को बाइनरी संख्या में बदलना है। कंप्यूटर में डेसिमल संख्या को आधार 10 के साथ दर्शाया जाता है और बाइनरी संख्या को आधार 2 के साथ दर्शाया जाता है क्योंकि इसमें केवल दो बाइनरी अंक 0 और 1 होते हैं जबकि डेसिमल संख्याएं 0-9 से शुरू होने व

  1. पायथन प्रोग्राम: X से विभाज्य सबसे छोटी K-अंकीय संख्या पायथन प्रोग्राम: X से विभाज्य सबसे छोटी K-अंकीय संख्या

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इंटीजर्स n और d दिए गए हैं। हमें d से विभाज्य सबसे छोटी n-अंकीय संख्या ढूंढने की आवश्यकता है। दृष्टिकोण 1. पहले हम MIN की गणना करते हैं: सबसे छोटी n-अंकीय संख्या (1000...n-टाइम्स) 2.