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

C++ में A में N अंक जोड़ें ताकि प्रत्येक जोड़ के बाद यह B से विभाज्य हो


यहां हम देखेंगे कि N अंकों को A के साथ जोड़कर एक संख्या कैसे उत्पन्न की जाए, और प्रत्येक चरण में नए अंक जोड़ते समय यह दूसरी संख्या B से विभाज्य हो। मान लीजिए हम 4 अतिरिक्त अंक जोड़कर एक 5-अंकीय संख्या बनाने जा रहे हैं। हम 7 से विभाज्यता की जांच करेंगे। संख्या 8 से शुरू होगी। तो पहले यह 4 को जोड़ेगा, इसलिए संख्या 84 होगी, जो 7 से विभाज्य है। फिर संख्या के साथ 0 जोड़ें ताकि यह 7 से विभाज्य रहे। यदि संख्या उत्पन्न नहीं की जा सकती, तो यह -1 लौटाएगा।

एल्गोरिदम

addNDigits(a, b, n)

begin 
    num := a 
    0 से 9 तक सभी संख्या x के लिए, करें 
        temp := a * 10 + x 
        if temp mod b is 0, then 
            a := temp 
            break 
        end if 
    done 
    if num = a, then 
        return -1 
    end if 
    शेष 0 को a के साथ जोड़ें 
    return a. 
end

उदाहरण

#include<iostream> 
using namespace std; 

int add_n_digits(int a, int b, int n) { 
    int num = a; 
    for (int i = 0; i <= 9; i++) { //सभी अंकों (0-9) को जोड़कर परीक्षण करें 
        int tmp = a * 10 + i; 
        if (tmp % b == 0) { 
            a = tmp; //जोड़ने के बाद a अपडेट करें 
            break; 
        } 
    } 
    if (num == a) //यदि कोई अंक नहीं जुड़ा, तो -1 लौटाएं 
        return -1; 
    for (int j = 0; j < n - 1; j++) //विभाज्य संख्या प्राप्त करने के बाद, 0 जोड़ें 
        a *= 10; 
    return a; 
} 

main() { 
    int a, b, n; 
    cout << "Enter A, B and N: "; 
    cin >> a >> b >> n; 
    int res = add_n_digits(a, b, n); 
    if(res == -1) { 
        cout << "Unable to get this type of number"; 
    } else { 
        cout << "Result is " << res; 
    } 
}

आउटपुट

Enter A, B and N: 8 7 4 
Result is 84000

आउटपुट

Enter A, B and N: 10 11 5 
Unable to get this type of number

  1. - C++ में दी गई संख्या n के लिए x ढूंढें जहां x + अंकों का योग = n

    समस्या विवरण एक संख्या n दी गई है, हमें एक मान x ढूंढना है जिससे x + x के अंकों का योग = n हो। उदाहरण के लिए, n = 21 के लिए, x = 15 होगा क्योंकि 15 + (1+5) = 21। हल दृष्टिकोण सरल दृष्टिकोण: 1 से n तक पुनरावृति करें, प्रत्येक संख्या के लिए जांचें कि क्या संख्या + उसके अंकों का योग = n है। यदि हां,

  1. - C++ में N अंक जोड़ें ताकि प्रत्येक जोड़ के बाद B से विभाज्य हो

    समस्या विवरण दिए गए a, b और n। हमें निम्नलिखित शर्तों पर विचार करके इष्टतम समाधान ढूंढना है: n अंकों को a में जोड़ें ताकि प्रत्येक पुनरावृत्ति के बाद यह b से विभाज्य हो। शर्तें: a में एक अंक जोड़ें ताकि जोड़ने के बाद, a, b से विभाज्य हो n पुनरावृत्तियों के बाद a का सबसे छोटा संभव मान प्रिंट करें

  1. - C++ प्रोग्राम: शब्द को पैलिंड्रोम पार्टीशन्स में विभाजित करने के तरीकों की संख्या खोजें

    यहां हम एक C++ प्रोग्राम पर चर्चा करेंगे जो एक शब्द को इस तरह पार्टीशन करने के तरीकों की संख्या खोजता है कि प्रत्येक शब्द एक पैलिंड्रोम हो। एल्गोरिदम Begin शब्द को इनपुट के रूप में लें। function partitionadd(vector