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

C++ में लंबाई a, b और c के खंडों की अधिकतम संख्या


दिए गए कार्य को देखते हुए लंबाई a, b और c के रेखाखंडों की अधिकतम संख्या ज्ञात करना है जो दिए गए धनात्मक पूर्णांक N से बन सकते हैं।

आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है -

इनपुट - एन=8, ए=3, बी=1, सी=2

आउटपुट - 8

स्पष्टीकरण - एन को बी के 8 खंडों में विभाजित किया जा सकता है जो कि अधिकतम संख्या में खंड बनाए जा सकते हैं।

इनपुट - एन=13, ए=2, बी=7, सी=3

आउटपुट -6

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • फ़ंक्शन में MaxSegment() एक सरणी MaxSeg[N +1] प्रकार int घोषित करें और इसे मान -1 के साथ प्रारंभ करें।

  • शून्य-वें सूचकांक को 0 के बराबर रखें क्योंकि इसमें कोई खंड नहीं होगा।

  • i=0 से i

  • उपरोक्त के अंदर यदि कथन एक और कथन रखता है यदि (i + a <=N) और putMaxSeg[i + a] =max(MaxSeg[i] + 1, MaxSeg[i + a]);

  • उपरोक्त चरण को b और c दोनों के लिए दोहराएं।

  • लूप के बाहर, MaxSeg[N] लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int MaxSegment(int N, int a,int b, int c){
   /* It will store the maximum number of segments each index can have*/
   int MaxSeg[N + 1];
   // initialization
   memset(MaxSeg, -1, sizeof(MaxSeg));
   // 0th index will have 0 segments
   MaxSeg[0] = 0;
   // traversing for every segments till n
   for (int i = 0; i < N; i++){
      if (MaxSeg[i] != -1){
         if(i + a <= N ){
            MaxSeg[i + a] = max(MaxSeg[i] + 1, MaxSeg[i + a]);
         }
         if(i + b <= N ){
            MaxSeg[i + b] = max(MaxSeg[i] + 1, MaxSeg[i + b]);
         }
         if(i + c <= N ){
            MaxSeg[i + c] = max(MaxSeg[i] + 1, MaxSeg[i + c]);
         }
      }
   }
   return MaxSeg[N];
}
int main(){
   int N = 13, a = 2, b = 7, c = 3;
   cout << MaxSegment(N, a, b, c);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -

6

  1. अधिकतम संख्या जिसे C++ में N सेगमेंट का उपयोग करके सेवन सेगमेंट डिस्प्ले पर प्रदर्शित किया जा सकता है

    यह देखते हुए कि कार्य सात खंड प्रदर्शन की चींटी संख्या पर N खंड का उपयोग करके प्रदर्शित की जा सकने वाली अधिकतम संख्या ज्ञात करना है। आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है - इनपुट -एन=5 आउटपुट - 71 स्पष्टीकरण − सबसे बड़ी संख्या सात खंडों के प्रदर्शन पर निम्नानुसार प्रदर्शि

  1. C++ में N कट में टुकड़ों की अधिकतम संख्या

    यह देखते हुए कि कार्य समान आकार के वर्ग या आयत टुकड़ों की अधिकतम संख्या की गणना करना है जो किसी दिए गए वर्ग टुकड़े को क्षैतिज या लंबवत रूप से कुल N संख्या में काटकर प्राप्त किया जा सकता है। आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है - इनपुट -एन=8 आउटपुट -25 स्पष्टीकरण − जब N=8

  1. लिंक की गई सूची का अधिकतम और न्यूनतम तत्व जो C++ . में दी गई संख्या k से विभाज्य है

    एक लिंक्ड सूची एक रैखिक डेटा संरचना है जिसमें तत्व पॉइंटर्स के माध्यम से जुड़े होते हैं। लिंक की गई सूची के प्रत्येक तत्व या नोड में एक डेटा भाग और लिंक होता है, या हम अनुक्रम में अगले तत्व के लिए सूचक कह सकते हैं। तत्व स्मृति में गैर-सन्निहित स्थान ले सकते हैं। हमें एक सिंगल लिंक्ड लिस्ट दी जाती