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

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


समस्या विवरण

सबसे छोटी K-अंकीय संख्या जो X से विभाज्य हो, सूत्र का उपयोग करके विभाज्यता की जांच करके पाई जाती है। सूत्र निम्न तरीके से काम करता है:

  1. न्यूनतम K-अंकीय संख्या [min] की गणना करें, उदाहरण: 10, 100, 1000, आदि (10^(K-1))
  2. अब जांचें कि क्या min, X से विभाज्य है। यदि हां, तो यही उत्तर है
  3. यदि नहीं, तो (min + X) - ((min + X) % X) उत्तर है

उदाहरण

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

long minKDigit(int k, int x) {
    // k अंकों की न्यूनतम संख्या प्राप्त करें
    long min = pow(10, k - 1);

    if (min % x == 0) {
        return min;
    }

    // अगला गुणक ढूंढें
    return (min + x) - ((min + x) % x);
}

int main() {
    int X = 83;
    int K = 5;

    cout << "The smallest " << K << " digit number divisible by " << X << " is ";
    cout << minKDigit(K, X);

    return 0;
}

आउटपुट

The smallest 5 digit number divisible by 83 is 100430

चरण-दर-चरण व्याख्या

उदाहरण: K=5, X=83

  1. न्यूनतम 5-अंकीय संख्या = 10^(5-1) = 10000
  2. 10000 % 83 = 10000 - 83×120 = 10000 - 9960 = 40 (विभाज्य नहीं)
  3. अगली संख्या = (10000 + 83) - ((10000 + 83) % 83)
  4. = 10083 - (10083 % 83)
  5. 10083 % 83 = 10083 - 83×121 = 10083 - 10043 = 40
  6. परिणाम = 10083 - 40 = 10043
  7. सत्यापन: 10043 / 83 = 121 ✓

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

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

अधिक उदाहरण

K (अंक) X (भाजक) न्यूनतम K-अंकीय परिणाम
3 7 100 105
4 13 1000 1001
6 97 100000 100089

समय जटिलता

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

नोट

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

  1. - प्रतिस्पर्धात्मक प्रोग्रामिंग के लिए C++ ट्रिक्स

    यहां हम C++ प्रोग्रामिंग भाषा के कुछ अच्छे ट्रिक्स देखेंगे जो विभिन्न क्षेत्रों में हमारी मदद कर सकते हैं। जैसे यदि हम किसी प्रतिस्पर्धात्मक प्रोग्रामिंग आयोजन में भाग लेना चाहते हैं, तो ये ट्रिक्स कोड लिखने में लगने वाले समय को कम करने में मदद करेंगे। आइए इन उदाहरणों को एक-एक करके देखते हैं। 1. %

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

    X से विभाज्य सबसे छोटी K अंकों की संख्या खोजने के लिए, Java कोड निम्नलिखित है:उदाहरणimport java.io.*; import java.lang.*; public class Demo{ public static double smallest_k(double x_val, double k_val){ double val = 10; double MIN = Math.pow(val, k_val - 1); if (MIN % x_val == 0) return (MIN); else r

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

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