Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C . में k छात्रों के बीच समान रूप से वितरित की जाने वाली चॉकलेट की अधिकतम संख्या


हमें एक सरणी के रूप में क्रमागत बक्सों में मौजूद कई चॉकलेट दी गई हैं और एक संख्या k दी गई है जो उन छात्रों की संख्या को दर्शाती है जिनके बीच ये चॉकलेट वितरित की जाएंगी। यहाँ कार्य क्रमागत बक्सों का चयन करना है ताकि उनमें मौजूद चॉकलेट का योग k छात्रों के बीच समान रूप से वितरित किया जा सके। साथ ही हमें यह भी सुनिश्चित करना होगा कि चॉकलेट की संख्या अधिकतम हो।

इसके लिए हम सरणी को बाएं से दाएं पार करेंगे और चॉकलेट की संख्या जोड़ना शुरू करेंगे और योग को k से विभाजित करेंगे। यदि इसे पूर्ण रूप से 0 के बराबर शेषफल से विभाजित किया जाता है तो इस योग को एक चर में संग्रहीत करें। जैसे-जैसे हम आगे बढ़ते हैं, हम इस प्रक्रिया को तब तक दोहराते हैं जब तक कि हमें ऐसी अधिकतम राशि प्राप्त न हो जाए। समस्या यह है कि k से विभाज्य अधिकतम योग उपसरणी ज्ञात की जाए।

इनपुट

Choco[]={ 1,2,4,5,2,8,3,5 } k=3

आउटपुट −अधिकतम संख्या में चॉकलेट k छात्रों के बीच समान रूप से वितरित की जाएंगी - 5

स्पष्टीकरण - अधिकतम योग उपसरणी { 5,2,8 } है। चॉकलेट का योग 15 है। समान रूप से विभाजित करने पर, सभी 3 छात्रों को मिलने वाली अधिकतम चॉकलेट 5 है।

नोट − बॉक्स क्रमागत हैं और अनुक्रमणिका { 3,4,5 }

. हैं

इनपुट

Choco[] = { 2,3,7,5,4,8,2,6 } k=5

आउटपुट −अधिकतम संख्या में चॉकलेट k छात्रों के बीच समान रूप से वितरित की जाएंगी − 7

स्पष्टीकरण - अधिकतम योग उपसरणी { 3,7,5,4,8,2,6} है। चॉकलेट का योग 35 है।

समान रूप से विभाजित करने पर, सभी 5 छात्रों को मिलने वाली अधिकतम चॉकलेट 7 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक पूर्णांक सरणी arr[] लेते हैं जिसमें लगातार कंटेनरों में कई चॉकलेट होते हैं।

  • तत्वों की संख्या 'n' बक्सों की संख्या को दर्शाती है।

  • नहीं लो. छात्रों की 'k' इनपुट के रूप में।

  • फ़ंक्शन maxChocolate(int arr[], int n, int k ), तीन तर्क लेता है - सरणी, इसका आकार और नहीं। छात्रों के कश्मीर.

  • हम लूप के लिए शुरुआत से arr[] का पता लगाना शुरू करेंगे।

  • दो चर योग और मैक्ससम लें। Sum सबअरे के लगातार तत्वों का योग संग्रहीत करता है।

  • maxSum का उपयोग अब तक मिली अधिकतम राशि को संग्रहीत करने के लिए किया जाता है।

  • लूप के लिए नेस्टेड के अंदर तत्वों को जोड़ते रहें और जांचें कि क्या sum%k शेष 0 देता है।

    साथ ही अगर यह राशि> अधिकतम राशि, अधिकतम राशि अपडेट करें।

  • अंतिम अधिकतम राशि की अधिकतम संख्या होगी। चॉकलेट की, जिसे k छात्रों में समान रूप से विभाजित किया जा सकता है।

  • परिणाम को maxSum/k के रूप में लौटाएं जो प्रत्येक छात्र को मिलने वाली चॉकलेट की संख्या है।

उदाहरण

#include <stdio.h>
// to find the maximum number
// of chocolates to be distributed equally among
// k students
int maxChocolates(int arr[], int n, int k){
   int sum;
   int maxSum = 0;
   for(int i=0;i<n;i++){
      sum=0;
      for(int j=i;j<n;j++){
         sum+=arr[j];
         if(sum%k==0 && sum>maxSum)
            maxSum=sum;
      }
   }
   // distributed equally among 'k' students
   return (maxSum / k);
}
int main(){
   int arr[] = { 2, 7, 6, 1, 4, 5 ,5, 3 };
   int n =8;
   int k =3;
   printf("Maximum number of chocolates to be distributed equally among k students: %d   ",maxChocolates(arr, n, k));
   return 0;
}

आउटपुट

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

Maximum number of chocolates to be distributed equally among k students − 11

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया जाता है। अब हमें उस पथ को खोजने की आवश्यकता है जिसमें अधिकतम संख्या में मोड़ हों। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिए इनपुट - आउटपुट - 6 अब इस दृष्टिकोण में, हम पेड़ से गुजरें

  1. C++ में द्विदलीय ग्राफ में किनारों की अधिकतम संख्या

    समस्या कथन एक पूर्णांक N दिया गया है जो शीर्षों की संख्या का प्रतिनिधित्व करता है। कार्य N शीर्षों के द्विदलीय ग्राफ़ में किनारों की अधिकतम संभव संख्या ज्ञात करना है। द्विपक्षीय ग्राफ़ द्विपक्षीय ग्राफ वह होता है जिसमें शीर्षों के 2 सेट होते हैं। सेट ऐसे होते हैं कि एक ही सेट के कोने कभी भी उनके ब

  1. पायथन कार्यक्रम अधिकतम तीन।

    तीन नंबर ए बी और सी को देखते हुए, हमारा काम यह है कि हमें दी गई संख्या में से अधिकतम तत्व को खोजना है। उदाहरण Input: a = 2, b = 4, c = 3 Output: 4 एल्गोरिदम Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst).