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

C++ में सरलीकृत भिन्न


मान लीजिए हमारे पास एक इंटीजर n है, हमें 0 और 1 (एक्सक्लूसिव) के बीच के सभी सरलीकृत भिन्नों की सूची ढूंढनी है जैसे कि हर <= n। यहाँ भिन्न किसी भी क्रम में हो सकते हैं।

इसलिए, यदि इनपुट है n = 4, तो आउटपुट होगा ["1/2","1/3","1/4","2/3","3/4"] क्योंकि "2/4" एक सरलीकृत भिन्न नहीं है क्योंकि इसे "1/2" में सरल किया जा सकता है।

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:

  • एक ऐरे ret परिभाषित करें

  • i := 2 से शुरू करें, जब i <= n, i बढ़ाते हुए, करें -

    • j := 1 से शुरू करें, जब j < i, j बढ़ाते हुए, करें -

      • c := i और j का gcd

      • a := j / c

      • b := i / c

      • (a को स्ट्रिंग के रूप में + "/" + b को स्ट्रिंग के रूप में) को ret के अंत में डालें

  • ret में मौजूद सभी यूनिक एलिमेंट्स का ऐरे लौटाएं

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

#include <bits/stdc++.h> using namespace std; void print_vector(vector<string> v){    cout << "[";    for(int i = 0; i<v.size(); i++){       cout << v[i] << ", ";    }    cout << "]"<<endl; } class Solution { public:    vector<string> simplifiedFractions(int n) {       vector<string> ret;       for (int i = 2; i <= n; i++) {          for (int j = 1; j < i; j++) {             int c = __gcd(i, j);             int a = j / c;             int b = i / c;             ret.push_back(to_string(a) + "/" + to_string(b));          }       }       set<string> s(ret.begin(), ret.end());       return vector<string>(s.begin(), s.end());    } }; main(){    Solution ob;    print_vector(ob.simplifiedFractions(4)); }

इनपुट

4

आउटपुट

[1/2, 1/3, 1/4, 2/3, 3/4, ]

  1. - C++ में Switch स्टेटमेंट: एक पूर्ण गाइड

    C++ में Switch स्टेटमेंट का उपयोग कैसे करें कंडीशनल स्टेटमेंट्स सभी प्रोग्रामिंग भाषाओं की एक सामान्य विशेषता हैं। इन स्टेटमेंट्स का उपयोग प्रोग्राम के प्रवाह को नियंत्रित करने और यह निर्दिष्ट करने के लिए किया जाता है कि कोड के विशिष्ट ब्लॉक्स कब निष्पादित होने चाहिए। C++ में उपयोग किए जाने वाले मुख

  1. - C++ में मितव्ययी संख्या (Frugal Number)

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया गया है। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या (FRUGAL NUMBER) − एक संख्या जिसके अंकों की संख्या उस संख्या के अभाज्य गुणनखंडन में अंकों की संख्या से सख्ती से अधिक है। उदाहरण &

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस