हमें तीन संख्याएं X, Y और N (रेंज [1,N] परिभाषित करने के लिए) प्रदान की गई हैं। लक्ष्य रेंज [1,N] में उन सभी संख्याओं को ढूंढना है जिन्हें केवल X और Y का उपयोग करके किसी भी संख्या में बार बनाया जा सकता है।
उदाहरण के लिए यदि X=2 और Y=3। संख्या 6 को 2 का तीन बार उपयोग करके (2+2+2) या 3 का दो बार उपयोग करके (3+3) बनाया जा सकता है। इसी तरह 7 को 2 का दो बार और 3 का एक बार उपयोग करके (2+2+3) बनाया जा सकता है।
हम इसे 1 से N तक प्रत्येक संख्या से X या Y घटाकर करेंगे। यदि अंतिम संख्या 0 तक कम हो जाती है तो काउंट बढ़ाएं।
उदाहरण से समझते हैं
इनपुट
N=10 X=4, Y=3
आउटपुट
केवल X और Y का उपयोग करके निर्मित कुल संख्याएं: 7
व्याख्या
केवल 3 और 4 से निर्मित संख्याएं: 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
आउटपुट
केवल X और Y का उपयोग करके निर्मित कुल संख्याएं: 5
व्याख्या
केवल 4 और 5 से निर्मित संख्याएं: 4, 5, 8(4+4), 9 (4+5), 10 (5+5)
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम तीन पूर्णांक X, Y और N लेते हैं।
फ़ंक्शन constructNums(int n,int x,int y) केवल x और y का उपयोग करके बनाई जा सकने वाली संख्याओं की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें ऐसी संख्याओं के लिए।
फॉर लूप का उपयोग करके संख्याओं की रेंज को पार करें। i=1 से i<=n
अब प्रत्येक संख्या num=i के लिए, व्हाइल लूप का उपयोग करके जांचें कि num>0 है या नहीं,
while(num%x==0) और num 0 नहीं है तो इसमें से x घटाएं।
while(num%y==0) और num 0 नहीं है तो इसमें से y घटाएं।
यदि दोनों से घटाने के बाद संख्या दोनों से अविभाज्य है और दोनों से बड़ी है। इसमें से x और y दोनों घटाएं।
यदि बाहरी व्हाइल लूप के बाद जांचें कि num 0 है। इसका मतलब x, y या दोनों num बना सकते हैं। काउंट बढ़ाएं।
सभी लूप के अंत में काउंट में कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#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 <<"केवल X और Y का उपयोग करके निर्मित कुल संख्याएं:"<<constructNums(N,X,Y); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
केवल X और Y का उपयोग करके निर्मित कुल संख्याएं:14