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

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

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

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

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

  • एक सरणी रिट परिभाषित करें

  • इनिशियलाइज़ i :=2 के लिए, जब i <=n, अपडेट (i 1 से बढ़ाएँ), करें -

    • इनिशियलाइज़ j :=1 के लिए, जब j

      • c :=i और j का gcd

      • ए:=जे / सी

      • बी:=मैं / सी

      • रिट के अंत में सम्मिलित करें (ए स्ट्रिंग के रूप में "/" स्ट्रिंग के रूप में बी को संयोजित करें)

  • रिट में मौजूद सभी अद्वितीय तत्वों की एक सरणी लौटाएं

उदाहरण

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

#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++

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

  1. C++ में मितव्ययी संख्या

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

  1. सी++ पेंटाटोप नंबर

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