मान लीजिए कि हमारे पास एक संख्या N है, और असीमित संख्या में सिक्के हैं जिनकी कीमत 1, 10 और 25 मुद्रा के सिक्के हैं। न्यूनतम राशि का भुगतान करने के लिए हमें कितने सिक्कों का उपयोग करने की आवश्यकता है। मान लीजिए कि एन 14 है, तो सिक्कों की संख्या 5 होगी, क्योंकि एक 10 मूल्य का सिक्का और चार 1 मूल्य का सिक्का होगा।
इसे हल करने के लिए, हमें इन चरणों का उपयोग करना होगा -
- यदि N <10 है, तो 1 मूल्य के सिक्कों की N संख्या लौटाएं
- यदि N> 9 और N <25, तो मान को 10 से विभाजित करें, और परिणाम प्राप्त करें, शेष 1 मूल्य के सिक्के का उपयोग करके कवर किया जाएगा, परिणाम प्राप्त करने के लिए गिनती जोड़ें
- यदि N> 25 है, तो इसे 25 से भाग दें, परिणाम लें, जब परिणाम <25 हो, तो दूसरे बिंदु के लिए फिर से वही कार्य करें और इसी तरह।
उदाहरण
#include<iostream> using namespace std; int countMinCoins(int n) { if(n<10) return n; else if(n > 9 && n < 25){ int count = n/10; count += n%10; return count; } else { int count = n/25; return count + countMinCoins(n%25); } } int main() { int n = 88; cout << "Minimum number of coins required: " << countMinCoins(n); }
आउटपुट
Minimum number of coins required: 7