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

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

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

एल्गोरिदम

NDigits जोड़ें(a, b, n)

begin
   num := a
   for all number x from 0 to 9, do
      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
   add remaining 0’s with 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++) { //test by adding all digits (0-9)
      int tmp = a * 10 + i;
      if (tmp % b == 0) {
         a = tmp; //update a after adding
         break;
      }
   }
   if (num == a) //if no digit is added, return -1
      return -1;
   for (int j = 0; j < n - 1; j++) //after getting divisible number, add 0s
      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. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए

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

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

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

    यहां हम एक शब्द को विभाजित करने के तरीकों की संख्या को खोजने के लिए एक सी ++ प्रोग्राम पर चर्चा करेंगे ताकि प्रत्येक शब्द एक पालिंड्रोम हो। एल्गोरिदम Begin    Take the word as input.    Function partitionadd(vector<vector<string> > &u, string &s, vector<str