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

केवल गैर-शून्य अंकों वाली श्रेणी के बीच की संख्याओं की संख्या जिनके अंकों का योग N है और संख्या C++ में M से विभाज्य है

संख्याओं की एक श्रेणी को परिभाषित करने के लिए हमें दो संख्याएँ START और END प्रदान की जाती हैं। लक्ष्य श्रेणी [START,END] में सभी संख्याओं को खोजना है जिनका कोई अंक 0 नहीं है और अंकों का योग किसी दिए गए संख्या N के बराबर है। साथ ही संख्याएं M से विभाज्य हैं

हम इसे START से END तक की संख्याओं को पार करके करेंगे और प्रत्येक संख्या के लिए हम थोड़ी देर के लूप का उपयोग करके इसके अंकों के योग की गणना करेंगे (केवल यदि सभी अंक शून्य नहीं हैं)। यदि यह योग N के बराबर है और संख्या M से विभाज्य है, तो वृद्धि की गणना।

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

इनपुट

START=1 END=100 N=9 M=6

आउटपुट

Numbers with digit sum N and divisible by M: 4

स्पष्टीकरण

Numbers 18, 36, 54, 72 have digit sum=9 and divisible by 6. None has 0 as a digit.

इनपुट

START=100 END=200 N=10 M=2

आउटपुट

Numbers with digit sum N and divisible by M: 4

स्पष्टीकरण

Numbers 118, 136, 154, 172 have digit sum=10 and divisible by 2. None has 0 as a digit.

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

  • हम पूर्णांक START, END, N और M लेते हैं।

  • फंक्शन डिजिटसम (इंट स्टार्ट, इंट एंड, इंट एन, इंट एम) डिजिटम =एन के साथ संख्याओं की गिनती देता है और एम से विभाज्य होता है और सभी गैर-शून्य अंक होते हैं।

  • ऐसी संख्याओं के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • परिवर्तनीय डिगसम को 0 के रूप में लें

  • परिवर्तनीय ध्वज को 0 के रूप में लें।

  • लूप के लिए उपयोग कर संख्याओं की ट्रैवर्स श्रेणी। i=शुरू से i=अंत तक

  • अब प्रत्येक संख्या num=i के लिए, यदि num%m==0 (m से विभाज्य) आगे बढ़ें।

  • लूप का उपयोग करते हुए जांचें कि क्या संख्या> 0 है। और अंक खोजें।

  • अंक =संख्या% 10। यदि अंक शून्य नहीं है तो डिगसम+=अंक की गणना करें। अगला अंक जोड़ने के लिए num=num/10 घटाएं। यदि कोई अंक 0 है, तो ध्वज =0 सेट करें और थोड़ी देर के लूप को तोड़ें

  • समय के अंत में, जांचें कि क्या ( digsum ==n और flag==1 )। अगर सही वेतन वृद्धि गिनती है।

  • अब i को m से बढ़ाएँ (m के गुणज में)।

  • सभी लूपों के अंत में काउंट की कुल संख्या होगी जो शर्त को पूरा करती है।

  • परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int digitSum(int start, int end, int n, int m){
   int count = 0;
   int digsum = 0;
   int flag=0;
   for (int i = start; i <= end; i++){
      int num=i;
      digsum=0;
      flag=0;
      if(num%m==0){
         while(num>0){
            int digit=num%10;
            if(digit==0){
               flag=0;
               break;
            }
            digsum+=num%10; //sum of digits
            num=num/10;
            flag=1;
         }
         if(digsum==n && flag==1) //original number is i {
            count++;
            cout<<i<<" ";
         }
         i+=m; //now increment in multiples of m
         i--; // for loop has i++
      }
   }
   return count;
}
int main(){
   int START = 1;
   int END = 100;
   int N = 9;
   int M = 6;
   cout <<"Numbers with digit sum N and divisible by M: "<<digitSum(START,END,N, M);
   return 0;
}

आउटपुट

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

Numbers with digit sum N and divisible by M: 4

  1. C++ में 1 से n के बीच अभाज्य संख्याओं का योग ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें एक संख्या n दी गई है। हमारा काम C++ में 1 से n के बीच की अभाज्य संख्याओं का योग ज्ञात करने के लिए एक कार्यक्रम बनाना है । अभाज्य संख्याएँ वे संख्याएँ होती हैं जिनमें केवल दो गुणनखंड होते हैं। वे संख्या हैं और 1. समस्या को समझने के लिए एक उदाहरण लेते हैं इनपुट n = 15 आउटपुट 41

  1. केवल C++ में 3 और 8 अंकों वाली संख्या में कनवर्ट करें

    इस ट्यूटोरियल में, हम किसी संख्या को केवल 3 और 8 के रूप में अंकों में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक यादृच्छिक संख्या प्रदान की जाएगी। हमारा काम है कि संख्या में से 1 जोड़कर या घटाकर या संख्या के अंकों को किसी वांछित अंक में परिवर्तित करके इसके अंकों को केवल 3 और 8 में

  1. अंकों के साथ न्यूनतम संख्या और केवल 7 और C++ में दिया गया योग

    समस्या कथन भाग्यशाली संख्याएँ धनात्मक पूर्णांक होती हैं जिनके दशमलव निरूपण में केवल भाग्यशाली अंक 4 और 7 होते हैं। कार्य न्यूनतम भाग्यशाली संख्या ज्ञात करना है जिसमें n के बराबर अंकों का योग हो। उदाहरण यदि योग =22 है तो लकी नंबर 4477 है क्योंकि 4 + 4 + 7 + 7 =22 एल्गोरिदम 1. If sum is multiple of