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

n अंकों की संख्याओं की संख्या जिनके अंकों का योग C++ में दिए गए योग के बराबर है

अंकों की संख्या और योग के रूप में एक धनात्मक संख्या दी गई है। लक्ष्य सभी d अंकों की संख्याओं को खोजना है जिनमें इनपुट योग के बराबर अंकों का योग है। अग्रणी शून्य वाली संख्याओं को d अंकों की संख्या नहीं माना जाएगा।

श्रेणियां 1 से 100 के बीच के अंक और 1 और 500 के बीच के योग हैं।

आइए उदाहरणों से समझते हैं।

उदाहरण के लिए

इनपुट - अंक =3, डिजी_सम =3

आउटपुट - n अंकों की उन संख्याओं की संख्या जिनके अंकों का योग दिए गए योग के बराबर है:6

स्पष्टीकरण - तीन अंकों की संख्याएं जिनमें अंकों का योग 3 है, वे हैं:

102, 111, 120, 201, 210, और 300.

इनपुट - अंक =4 डिजी_सम =2

आउटपुट - n अंकों की उन संख्याओं की संख्या जिनके अंकों का योग दिए गए योग के बराबर है:4

स्पष्टीकरण - चार अंकों की संख्याएं जिनमें अंकों का योग 2 है, वे हैं:

1001, 1010, 1100, और 2000.

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

इस उपागम में हम पहले d अंकों की संख्या से आगे बढ़ेंगे और पहली संख्या ज्ञात करेंगे जिसके अंकों का योग दिए गए योग के बराबर है। फिर संख्याओं को 9 से तब तक बढ़ाएँ जब तक हमें दिए गए योग से अधिक अंकों का योग न मिल जाए। एक बार इनपुट योग से अधिक अंक योग वाली संख्या मिल जाने के बाद संख्या को 1 से बढ़ाएं और इनपुट योग के रूप में योग के साथ अगली संख्या पाएं। इस प्रक्रिया को अंतिम डी अंक संख्या तक दोहराएं।

  • अंकों की संख्या और अंकों के योग को इनपुट के रूप में लें।
  • फ़ंक्शन डिजिट्स_सम (इंट डिजिट्स, इंट डिजी_सम) दोनों इनपुट वैल्यू लेता है और एन डिजिट नंबर्स की गिनती देता है जिनके अंकों का योग दिए गए योग के बराबर होता है।
  • प्रारंभिक गणना 0 के रूप में लें।
  • पहली संख्या को लेफ्ट =पाउ (10, अंक -1) के रूप में लें। और श्रेणी की अंतिम संख्या दाएँ =pow(10, अंक) - 1 (अर्थात अंक =2 ​​के लिए 10 और 99) के रूप में।
  • थोड़ी देर के लूप का उपयोग करके बाएं से दाएं ट्रैवर्स करें।
  • पहला =0 और अंतिम =i लें।
  • प्रत्येक i (अंतिम) के लिए, सबसे दाहिना अंक (अंतिम% 10) लें और पहले में जोड़ें। अगले पुनरावृत्ति के लिए अंतिम को 10 तक कम करें।
  • अगर पहले डिजी_सम के बराबर हो जाता है, तो गिनती बढ़ाएँ और अगले पुनरावृत्ति के लिए i को 9 से अपडेट करें।
  • अन्यथा 1 से बढ़ाएँ।
  • सभी लूपों के अंत में हम उन संख्याओं के रूप में गिनेंगे जिनका अंकों का योग digi_sum के बराबर होगा।
  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int digits_sum(int digits, int digi_sum) {
   int count = 0;
   int Left = pow(10, digits - 1);
   int right = pow(10, digits) - 1;
   int i = Left;
   while (i <= right) {
      int first = 0;
      int last = i;
      while (last != 0) {
         first = first + last % 10;
         last = last / 10;
      }
      if (first == digi_sum) {
         count++;
         i = i + 9;
      } else {
         i++;
      }
   }
   return count;
}
int main() {
   int digits = 5;
   int digi_sum = 7;
   cout << "Count of n digit numbers whose sum of digits equals to given sum are: " << digits_sum(digits, digi_sum);
   return 0;
}

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

आउटपुट

Count of n digit numbers whose sum of digits equals to given sum are: 5

  1. C++ में अद्वितीय अंकों के साथ संख्याएं गिनें

    मान लीजिए कि हमारे पास एक गैर-ऋणात्मक पूर्णांक n है। हमें सभी संख्याओं को अद्वितीय अंकों x के साथ गिनना है, जहां x 0 से 10^n की सीमा में है। इसलिए यदि संख्या n 2 है, तो परिणाम 91 होगा, क्योंकि हम 11, 22, 33, 44, 55, 66, 77, 88, 99 के बिना 0 से 100 तक की संख्याएँ खोजना चाहते हैं। इसे हल करने के लिए,

  1. उन सभी एन-डिजिट नंबरों को प्रिंट करें जिनके अंकों का योग C++ में दिए गए योग के बराबर है

    इस समस्या में, हमें दो अंक n और योग दिया जाता है। हमें उन सभी n अंकों की संख्याओं को प्रिंट करना है जिनका योग योग के बराबर है। इस समस्या में, अग्रणी 0 वाली संख्याओं पर विचार नहीं किया जाता है। समस्या को समझने के लिए एक उदाहरण लेते हैं, Input: n = 2 , sum = 5 Output: 14 23 32 41 50 Explanation: The

  1. ऐसी दो संख्याएँ ज्ञात कीजिए जिनका योग और GCD C++ में दिया गया है

    हमारे पास दो संख्याओं a और b का योग और gcd है। हमें a और b दोनों संख्याएँ ज्ञात करनी हैं। यदि यह संभव नहीं है, तो वापसी -1। मान लीजिए कि योग 6 है और gcd 2 है, तो संख्याएँ 4 और 2 हैं। दृष्टिकोण ऐसा है, जैसा कि GCD दिया जाता है, तो ज्ञात होता है कि संख्याएँ इसके गुणज होंगी। अब निम्नलिखित चरण हैं य