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

न्यूनतम सिक्का परिवर्तन समस्या


सिक्कों की एक सूची C(c1, c2, …Cn) दी गई है और एक मान V भी दिया गया है। अब समस्या यह है कि मान V बनाने के लिए न्यूनतम संख्या में सिक्कों का उपयोग किया जाए।

नोट - मान लें कि सिक्कों C की अनंत संख्या है

इस समस्या में, हम सिक्कों का एक सेट C{1, 2, 5, 10} पर विचार करेंगे, प्रत्येक प्रकार के सिक्कों की अनंत संख्या है। अनुरोधित मान का परिवर्तन करने के लिए हम किसी भी प्रकार के न्यूनतम सिक्के लेने का प्रयास करेंगे।

उदाहरण के लिए, मान 22 के लिए - हम {10, 10, 2} चुनेंगे, न्यूनतम 3 सिक्कों के रूप में।

इस एल्गोरिदम की समय जटिलता O(V) है, जहां V मान है।

इनपुट और आउटपुट

इनपुट: एक मान, मान लें 47 आउटपुट: मान दर्ज करें: 47 सिक्के हैं: 10, 10, 10, 10, 5, 2

एल्गोरिदम

findMinCoin(value)

इनपुट - परिवर्तन करने के लिए मान

आउटपुट - सिक्कों का सेट

Begin 
  coins set with value {1, 2, 5, 10} 
  for all coins i as higher value to lower value do 
    while value >= coins[i] do 
      value := value – coins[i] 
      add coins[i], in the coin list 
    done 
  done 
  print all entries in the coin list. 
End

उदाहरण

#include<iostream> #include<list> #define COINS 4 using namespace std; float coins[COINS] = {1, 2, 5, 10}; void findMinCoin(int cost) { list coinList; for(int i = COINS-1; i>=0; i--) { while(cost >= coins[i]) { cost -= coins[i]; coinList.push_back(coins[i]); //add coin in the list } } list::iterator it; for(it = coinList.begin(); it != coinList.end(); it++) { cout << *it << ", "; } } main() { int val; cout << "Enter value: "; cin >> val; cout << "Coins are: "; findMinCoin(val); cout << endl; }

आउटपुट

Enter value: 47 Coins are: 10, 10, 10, 10, 5, 2
  1. विंडोज 10 में Alt-Tab पारदर्शिता कैसे बदलें विंडोज 10 में Alt-Tab पारदर्शिता कैसे बदलें

    लगभग हर ऑपरेटिंग सिस्टम में सबसे अच्छी और सबसे उपयोगी विशेषताओं में से एक Alt + Tab कीबोर्ड शॉर्टकट है। यह आसान छोटा कीबोर्ड शॉर्टकट पहली बार विंडोज 3.0 में पेश किया गया था। तब से, इस कीबोर्ड शॉर्टकट का व्यापक रूप से माउस का उपयोग किए बिना कई ऐप्स के बीच स्विच करने के लिए उपयोग किया जाता है। जब आप व

  1. C++ में मैक्स हीप में न्यूनतम एलिमेंट C++ में मैक्स हीप में न्यूनतम एलिमेंट

    समस्या कथनमैक्स हीप में सबसे कम मान वाला एलिमेंट ढूंढें।नीचे दिए गए मैक्स हीप पर विचार करें।मैक्स हीप में रूट नोड का मान हमेशा उसके बच्चों से अधिक होता है। इस गुण के कारण, हम निष्कर्ष निकाल सकते हैं कि मान लीफ नोड्स में से एक में मौजूद होगा। यदि हीप में n नोड्स हैं तो ceil(n/2) लीफ होंगे।मैक्स हीप ए

  1. पायथन प्रोग्राम: सिक्का परिवर्तन पायथन प्रोग्राम: सिक्का परिवर्तन

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें N सिक्के दिए गए हैं और हम उन सिक्कों का परिवर्तन करना चाहते हैं ताकि S में प्रत्येक मूल्य की अनंत आपूर्ति हो। हमें प्रदर्शित करना है कि हम कितने तरीकों से क्रम की परवाह किए बिना परिवर्तन कर सकते हैं। हम समय जटिलता को कम करने क