हमें तीन नंबर X, Y और N (रेंज [1,N] को परिभाषित करने के लिए) दिए गए हैं। लक्ष्य [1,N] के दायरे में उन सभी संख्याओं को खोजना है, जिनका निर्माण X और Y का उपयोग करके कितनी भी बार किया जा सकता है..
उदाहरण के लिए यदि एक्स =2 और वाई =3। संख्या 6 का निर्माण 2 तीन बार (2+2+2) या 3 दो बार (3+3) का उपयोग करके किया जा सकता है। इसी तरह 2 को दो बार और 3 बार (2+2+3) का उपयोग करके 7 का निर्माण किया जा सकता है।
हम 1 से N तक प्रत्येक संख्या से X या Y घटाकर ऐसा करेंगे। यदि अंतिम संख्या घटकर 0 हो जाती है तो वृद्धि की गणना।
आइए उदाहरणों से समझते हैं।
इनपुट
N=10 X=4, Y=3
आउटपुट
Total numbers constructed using X & Y only: 7
स्पष्टीकरण
Numbers constructed by 3 and 4 only: 3, 4, 6 (3+3), 7 (3+4), 8 (4+4), 9 (3+3+3), 10 (3+3+4)
इनपुट
N=10 X=5, Y=4
आउटपुट
Total numbers constructed using X & Y only: 5
स्पष्टीकरण
Numbers constructed by 4 and 5 only: 4, 5, 8(4+4), 9 (4+5), 10 (5+5)
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम तीन पूर्णांक X, Y और N लेते हैं।
-
फंक्शन कंस्ट्रक्शननम्स (इंट एन, इंट एक्स, इंट वाई) उन संख्याओं की संख्या देता है जिन्हें केवल एक्स और वाई का उपयोग करके बनाया जा सकता है।
-
ऐसी संख्याओं के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
लूप के लिए उपयोग कर संख्याओं की ट्रैवर्स श्रेणी। i=1 से i<=n
-
अब प्रत्येक संख्या के लिए num=i, जबकि लूप का उपयोग करके जांचें कि क्या num>0,
-
जबकि(num%x==0) और संख्या 0 नहीं है, इसमें से x घटाएं।
-
जबकि(num%y==0) और संख्या 0 नहीं है, इसमें से y घटाएं।
-
यदि x और y को घटाने पर संख्या दोनों से विभाज्य नहीं है और दोनों से बड़ी है। इसमें x और y दोनों को घटाएं।
-
यदि बाहरी समय के बाद लूप चेक करें कि क्या संख्या 0 है। इसका मतलब है कि x, y या दोनों संख्या बना सकते हैं। वेतन वृद्धि की संख्या।
-
सभी लूपों के अंत में गिनती की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int constructNums(int n,int x,int y){ int count = 0; for (int i = 1; i <= n; i++) { int num = i; while(num>0){ while((num%x)==0 && num!=0) num-=x; while((num%y)==0 && num!=0) num-=y; if (num>x && num>y) num=num-x-y; else break; } if (num==0) { count++;} } return count; } int main(){ int N=20; int X=5,Y=4; cout <<"Total numbers constructed using X & Y only:"<<constructNums(N,X,Y); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Total numbers constructed using X & Y only:14