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

सिक्कों की न्यूनतम संख्या जो किसी दिए गए मूल्य को बनाते हैं


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

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

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

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

<पूर्व>इनपुट:आवश्यक मान। 48 आउटपुट कहें:न्यूनतम आवश्यक सिक्के। यहां आउटपुट 7.48 =10 + 10 + 10 + 10 + 5 + 2 + 1 . है

एल्गोरिदम

minCoins(coinList, n, value)

इनपुट: विभिन्न सिक्कों की सूची, सिक्कों की संख्या, दिए गए मूल्य।

आउटपुट: दिए गए मूल्य प्राप्त करने के लिए सिक्कों की न्यूनतम संख्या।

शुरू करें यदि मान =0 है, तो वापसी 0 आकार मान + 1 के सिक्कों की सरणी को परिभाषित करें, ∞ सिक्कों के साथ भरें [0]:=0 के लिए i:=1 मान के लिए, j के लिए करें:=0 से n, यदि करें सिक्का सूची [जे] <=मैं, फिर अस्थायी सिक्के:=सिक्के [i-coinList [जे]] अगर tempCoins और (tempCoins + 1) <सिक्के [i], तो सिक्के [i]:=tempCoins + 1 किया वापसी सिक्के[मूल्य]अंत

उदाहरण

#शामिल करेंनेमस्पेस std का उपयोग करना;int minCoins(intcoinList[], int n, int value) { intcoins[value+1]; // मूल्य के लिए न्यूनतम सिक्के स्टोर करें i यदि (मान ==0) रिटर्न 0; // मान 0 के लिए, इसे 0 सिक्के के सिक्के [0] =0 की आवश्यकता है; के लिए (int i=1; i<=value; i++) सिक्के [i] =INT_MAX; // प्रारंभ में सभी मान अनंत हैं (int i=1; i<=value; i++) के लिए 0 मान को छोड़कर {// सभी मानों के लिए 1 से मान, के लिए न्यूनतम मान खोजें (int j=0; j> मूल्य; cout <<"न्यूनतम "< 

आउटपुट

मान दर्ज करें:48 न्यूनतम 7 सिक्कों की आवश्यकता है।

  1. C++ का उपयोग करके N को 25 से विभाज्य बनाने के लिए आवश्यक दी गई चालों की न्यूनतम संख्या।

    समस्या कथन बिना अग्रणी शून्य के एक संख्या N दी गई है। कार्य N को 25 से विभाज्य बनाने के लिए आवश्यक न्यूनतम चालों को खोजना है। प्रत्येक चाल पर, कोई भी दो आसन्न अंकों को स्वैप कर सकता है और यह सुनिश्चित कर सकता है कि किसी भी समय संख्या में कोई अग्रणी शून्य नहीं होना चाहिए। यदि N को 25 से विभाज्य बनान

  1. तत्वों की न्यूनतम संख्या जिन्हें C++ का उपयोग करके सरणी को अच्छा बनाने के लिए हटाया जाना चाहिए।

    समस्या कथन एक सरणी गिरफ्तारी को देखते हुए, कार्य सरणी को अच्छा बनाने के लिए हटाए जाने वाले तत्वों की न्यूनतम संख्या को खोजना है। अनुक्रम a1, a2, a3. . .an को अच्छा कहा जाता है यदि प्रत्येक तत्व a[i] के लिए एक तत्व a[j] (i के बराबर नहीं है) मौजूद है जैसे कि a[i] + a[j] दो की शक्ति है। arr1[] = {1,

  1. C++ में एक स्ट्रिंग पैलिंड्रोम बनाने के लिए विलोपन की न्यूनतम संख्या।

    समस्या कथन आकार एन की एक स्ट्रिंग को देखते हुए। कार्य स्ट्रिंग पैलिंड्रोम बनाने के लिए वर्णों की न्यूनतम संख्या को हटाना है। यदि दी गई स्ट्रिंग abcda है तो हम इसे पैलिंड्रोम बनाने के लिए पहले और अंतिम को छोड़कर किन्हीं भी 2 वर्णों को हटा सकते हैं। अगर हम अक्षर b और c को हटाते हैं तो ada स्ट्रिं