मेरी जेब में $ 15 हैं। इसी तरह, मैं एक ऐसे स्टोर में हूं जो बदलाव नहीं देता है। ब्राउज़ करते समय, मैं $ 10 की लागत वाली एक वस्तु (कर शामिल) करता हूं। क्या मैं बिना पैसा खोए उस वस्तु को खरीद सकता हूं?
इस मामले में, जवाब हां है। कोई फर्क नहीं पड़ता कि मेरे $ 15 को कैसे विभाजित किया गया है (एक 10 और एक 5, या तीन 5s, या कुछ और), मुझे हमेशा सटीक $ 10 की आवश्यकता होगी।
दूसरे उदाहरण के रूप में, मेरी जेब में $ 0.16 है। मुझे अन्य कितनी राशि का भुगतान करना चाहिए?
Possible Divisions:
0.01, 0.05, 0.10
0.01, 0.05 x 3
0.01 x 16
Guaranteed Exact Change:
0.01, 0.05, 0.06, 0.10, 0.11, 0.15, 0.16
अगर मेरी जेब में $ 0.27 हो तो क्या होगा?
Possible Divisions:
0.01 x 2, 0.25
0.01 x 2, 0.05, 0.10 x 2
0.01 x 2, 0.05 x 3, 0.10
0.01 x 2, 0.05 x 5
0.01 x 27
Guaranteed Exact Change:
0.01, 0.02, 0.25, 0.26, 0.27
उपरोक्त मामले में, केवल कुछ मात्रा में पैसे थे जिसके लिए मैं हमेशा सही परिवर्तन करूंगा।
आपका कार्य
सबसे छोटा प्रोग्राम (या नामित फ़ंक्शन) लिखें जो ए) लेता है एक पूर्णांक राशि और बी) इनपुट के रूप में संभावित संप्रदायों की एक सूची है, और उन धनराशि की सूची का आउटपुट करता है जिनके लिए मेरे पास पूर्ण परिवर्तन होना चाहिए। इनपुट प्रोग्राम या फ़ंक्शन के लिए STDIN या तर्क हो सकता है। मैं इनपुट स्वरूपण पर सुपर-सख्त नहीं होने जा रहा हूं; यह मेल कर सकता है कि आपके भाषा प्रारूप कैसे व्यवस्थित होते हैं।
शायद एक अधिक विस्तृत व्याख्या
मेरी जेब में एक निश्चित राशि है, जो मुद्रा के संभावित प्रदर्शनों के एक सेट से बनती है। यदि मेरे पास $ 8 है, और मुझे पता है कि संभावित मूल्यवर्ग $ 2 और $ 3 हैं, तो बिलों के केवल बहुत सारे संयोजन हैं जो मेरी जेब में हो सकते हैं। ये हैं 2+2+2+2और 3+3+2। सही मात्रा में धन का उत्पादन करने में सक्षम होने के लिए, मुझे अपनी जेब में मौजूद बिलों का उपयोग करके उस मात्रा का उत्पादन करने में सक्षम होना चाहिए। यदि मेरे पास चार 2s होते, तो मैं उत्पादन कर सकता था 2, 4, 6, or 8। अगर मेरे पास दो 3s और 2 होते, तो मैं उत्पादन कर सकता था 2, 3, 5, 6, or 8क्योंकि मुझे नहीं पता कि इनमें से कौन सा संयोजन वास्तव में मेरी जेब में है, मेरा अंतिम उत्तर कम हो गया है 2, 6, 8। ये वे मूल्य हैं जिन्हें मैं जानता हूं कि मैं अपनी जेब से उत्पादन कर सकता हूं, कुल राशि और संभावित मूल्यवर्ग।
हाथ से परिकलित उदाहरण I / O
7 [3, 4]
3, 4, 7 //only one possible division into 3 + 4
7 [3, 2]
2, 3, 4, 5, 7 //the only division is 3 + 2 + 2
6 [2, 3, 4]
6 //divisions are 2+2+2, 3+3, 2+4
16 [1, 5, 10, 25] //this represents one of the examples above
1, 5, 6, 10, 11, 15, 16
27 [1, 5, 10, 25] //another example from above
1, 2, 25, 26, 27
1500 [1, 5, 10, 25, 100, 500, 1000, 2000]
500, 1000, 1500
600 [100, 500, 1000, 2000]
100, 500, 600
600 [200, 1, 5, 10, 25, 100, 500, 1000, 2000]
600
6 [2, 3, 4]। 2+2+23 नहीं बना सकते , और 3+32 और 4 नहीं बना सकते?