এই প্রোগ্রামে আমরা দেখব কিভাবে একটি নির্দিষ্ট টাকার পরিমাণের জন্য কমপক্ষে কতগুলো নোট লাগবে সেটি বের করা যায়।
নোটের ডিনোমিনেশন
বাংলাদেশি মুদ্রার নোট: ১০০০, ৫০০, ১০০, ৫০, ২০, ১০, ৫, ২, ১ টাকা।
উদাহরণ
৫১২ টাকার জন্য:
- ১টি ৫০০ টাকার নোট
- ১টি ১০ টাকার নোট
- ১টি ২ টাকার নোট
মোট ৩টি নোট।
সমাধান
const sum = 512;
const countNotes = (amount) => {
const denominations = [1000, 500, 100, 50, 20, 10, 5, 2, 1];
let count = 0;
let remaining = amount;
for (const note of denominations) {
if (remaining >= note) {
const noteCount = Math.floor(remaining / note);
count += noteCount;
remaining -= noteCount * note;
}
}
return count;
};
console.log(countNotes(sum)); // 3
বेहतर পদ্ধতি (Greedy Algorithm)
উপরোক্ত কোডটি লোভী অ্যালগরিদম (Greedy Algorithm) ব্যবহার করেছে যা বাংলাদেশি মুদ্রার মতো ক্যানোনিকাল কয়েন সিস্টেমের জন্য সর্বোত্তম ফলাফল দেয়।
উৎপাদন
3