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

खिलौनों की संख्या को अधिकतम करें जिन्हें C++ में K राशि से खरीदा जा सकता है

हमें खिलौनों की कीमतों के साथ एक सरणी और हाथ में एक राशि के रूप में दिया जाता है। लक्ष्य अधिकतम संख्या खरीदना है। उस राशि के खिलौनों की। सरणी का प्रत्येक तत्व एक खिलौने की कीमत है, इसलिए नहीं। खिलौनों की नहीं है। तत्वों की। हम कीमतों की सरणी को बढ़ते क्रम में क्रमबद्ध करेंगे ताकि कम कीमत के अधिकतम खिलौने पहले खरीदे जा सकें और उसके बाद महंगे खिलौने खरीदे जा सकें।

इनपुट

toyprices[]= { 10, 20, 12, 15, 50, 30 } K=50

आउटपुट

Maximum no. of toys that can be purchased : 3

स्पष्टीकरण - खिलौनों की कीमतों को आरोही क्रम में क्रमबद्ध करना - { 10, 12, 15, 20, 30 , 50 }

Take first toy: K=50, count=1, leftover K =40 ( 50-10 )
Take second toy: K=40, count=2, leftover K =28 ( 40-12 )
Take third toy: K=28, count=13, leftover K =13 ( 28-15 )
Now K< price of next toy 20 so count=3

इनपुट

toyprices[]= { 50,40,30,20,10 } K=25

आउटपुट

Maximum no. of toys that can be purchased : 1

स्पष्टीकरण − 25>10,20 लेकिन आप उनमें से केवल एक को 10+20=30 के रूप में ले सकते हैं। अधिकतम गणना=1

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

  • पूर्णांक सरणी टॉयप्राइस [] खिलौनों की कीमतों को संग्रहीत करता है।

  • फंक्शन मैक्सटॉयज (इंट प्राइस [], इंट एन, इंट के) मूल्य सरणी, इसकी लंबाई और राशि लेता है

  • टॉयकाउंट का उपयोग नंबर को स्टोर करने के लिए किया जाता है। ख़रीदे जा सकने वाले खिलौनों की संख्या, प्रारंभ में 0.

  • K से कितना पैसा खर्च किया गया है, यह जांचने के लिए परिवर्तनीय खर्च का उपयोग किया जाता है।

  • सरणी मूल्य [] को सॉर्ट (कीमत, मूल्य + एन) का उपयोग करके आरोही क्रम में क्रमबद्ध करें;

  • सरणी मूल्य [] को न्यूनतम मूल्य, मूल्य [0] से उच्चतम तक ट्रैवर्स करना प्रारंभ करें।

  • खर्च में खिलौने की कीमत जोड़ते रहें और जांचें कि क्या <=के, यदि हां तो खिलौनों की गिनती बढ़ाएं। यानी यह खिलौना लिया जा सकता है। खर्च =खर्च + मूल्य [i] अपडेट करें।

  • अंत में टॉयकाउंट में कई खिलौने हैं जिन्हें खरीदा जा सकता है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int maxToys(int price[], int N, int K){
   int toycount = 0;
   int spent = 0; //money spent upto K only
   // sort the prices so that minium prices are first
   sort(price, price + N);
   for (int i = 0; i < N; i++) {
      if (spent + price[i] <= K){
         spent = spent + price[i];
         toycount++;
      } else
         break; //as array is sorted
   }
   return toycount;
}
int main(){
   int budget = 100;
   int toyprice[] = { 10, 120, 50, 11, 20, 100, 10, 90, 12, 15 };
   int N = 10;
   cout <<"Maximum no. of toys that can be purchased : "<< maxToys(toyprice, N, budget) ;
   return 0;
}

आउटपुट

Maximum no. of toys that can be purchased : 6

  1. C++ प्रोग्राम स्कोर की अधिकतम राशि का पता लगाने के लिए जिसे ग्राफ़ से घटाया जा सकता है

    मान लीजिए, एक भारित, अप्रत्यक्ष ग्राफ है जिसमें n कोने और m किनारे हैं। ग्राफ़ के स्कोर को ग्राफ़ में सभी किनारों के वज़न के योग के रूप में परिभाषित किया गया है। किनारे के वजन नकारात्मक हो सकते हैं, और यदि उन्हें हटा दिया जाता है तो ग्राफ का स्कोर बढ़ जाता है। हमें क्या करना है, हमें ग्राफ को कनेक्ट

  1. C++ में थ्रेसहोल्ड दूरी पर पड़ोसियों की सबसे छोटी संख्या वाले शहर का पता लगाएं

    मान लीजिए कि n शहरों की संख्या 0 से n-1 तक है। यदि हमारे पास सरणी किनारे हैं जहां किनारों [i] =[fromi, toi, weighti] शहरों से i और toi के बीच एक द्विदिश और भारित किनारे का प्रतिनिधित्व करता है, और पूर्णांक दूरी सीमा दी गई है। हमें ऐसे शहरों की सबसे छोटी संख्या वाला शहर ढूंढना है जो किसी रास्ते से पह

  1. फ़ंक्शन जिन्हें C++ में ओवरलोड नहीं किया जा सकता है

    C++ में हम फंक्शन्स को ओवरलोड कर सकते हैं। लेकिन कई बार ओवरलोडिंग नहीं होती है। इस खंड में, हम देखेंगे कि विभिन्न मामले क्या हैं, जिनमें हम कार्यों को अधिभारित नहीं कर सकते हैं। जब फ़ंक्शन सिग्नेचर समान होते हैं, केवल रिटर्न प्रकार अलग होता है, तो हम फ़ंक्शन को ओवरलोड नहीं कर सकते। int my_func(