मान लीजिए कि हमारे पास इतनी राशि है, और हमें विभिन्न मूल्यवर्ग के नोटों की न्यूनतम संख्या ज्ञात करनी है, जो दी गई राशि तक है। उच्चतम मूल्य के नोटों से शुरू करें, दी गई राशि के लिए अधिक से अधिक नोट खोजने का प्रयास करें। यहाँ धारणा यह है कि हमारे पास {2000, 500, 200, 100, 50, 20, 10, 5, 2, 1} की अनंत राशि है। तो अगर राशि 800 है, तो 500, 200, 100 के नोट होंगे।
यहाँ हम इस समस्या को हल करने के लिए लालची दृष्टिकोण का उपयोग करेंगे।
उदाहरण
#include<iostream> using namespace std; void countNotes(int amount) { int notes[10] = { 2000, 500, 200, 100, 50, 20, 10, 5, 2, 1 }; int noteFreq[10] = { 0 }; for (int i = 0; i < 10; i++) { if (amount >= notes[i]) { noteFreq[i] = amount / notes[i]; amount = amount - noteFreq[i] * notes[i]; } } cout << "Note count:" << endl; for (int i = 0; i < 9; i++) { if (noteFreq[i] != 0) { cout << notes[i] << " : " << noteFreq[i] << endl; } } } int main() { int amount = 1072; cout << "Total amount is: " << amount << endl; countNotes(amount); }
आउटपुट
Total amount is: 1072 Note count: 500 : 2 50 : 1 20 : 1 2 : 1