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

दो संख्याओं का उपयोग करके बनाई जा सकने वाली संख्याओं की गणना करें C++ में


हमें तीन संख्याएं 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

  1. - C++ में दो संख्याओं के सामान्य भाजकों की संख्या गिनने का प्रोग्राम

    यहां हम देखेंगे कि दो संख्याओं के सामान्य भाजकों की संख्या कैसे प्राप्त की जा सकती है। हम सभी सामान्य भाजक नहीं ढूंढने जा रहे हैं, लेकिन हम गिनेंगे कि कितने सामान्य भाजक हैं। यदि दो संख्याएं 12 और 24 जैसी हैं, तो सामान्य भाजक 1, 2, 3, 4, 6, 12 हैं। तो 6 सामान्य भाजक हैं, इसलिए उत्तर 6 होगा। एल्गोरि

  1. - C++ में बूस्ट लाइब्रेरी द्वारा बड़ी संख्याएं हैंडल करना

    C++ में बड़ी संख्याओं (बड़े इंटीजर, हाई प्रिसिजन फ्लोट) को हैंडल करने के लिए Boost.Multiprecision लाइब्रेरी का उपयोग करें। यह बिल्ट-इन टाइप्स (long long 64-बिट तक) की सीमा से आगे जाती है। मुख्य डेटा टाइप्स टाइपविवरणप्रिसिजन cpp_intआर्बिट्ररी प्रिसिजन इंटीजरअनलिमिटेड (रनटाइम पर) int128_tफिक्स्ड

  1. - C++ प्रोग्राम: दो संख्याओं को स्वैप करें

    परिचयदो संख्याओं को स्वैप करने का प्रोग्राम बनाने के दो तरीके हैं। एक में टेम्प वेरिएबल का उपयोग शामिल है और दूसरा तरीका तीसरे वेरिएबल का उपयोग नहीं करता है। इन्हें विस्तार से समझाया गया है - टेम्प वेरिएबल का उपयोग करके दो संख्याओं को स्वैप करेंउदाहरण#include <iostream> using namespace std; i