Example
Input
Input amount: 575
Output
Total number of notes: 500: 1 100: 0 50: 1 20: 1 10: 0 5: 1 2: 0 1: 0
Logic to count minimum number of denomination for given amount
There any many optimal algorithms to solve the given problem. For this exercise to make things simple I have used greedy algorithm.
Step by step descriptive logic to find minimum number of denomination.
- Input amount from user. Store it in some variable say amt.
- If amount is greater than 500 then, divide amount by 500 to get maximum 500 notes required. Store the division result in some variable say
note500 = amt / 500;
.After division, subtract the resultant amount of 500 notes from original amount. Performamt = amt - (note500 * 500)
. - Repeat above step, for each note 200, 100, 50, 20, 10, 5, 2 and 1.
/**
* C program to count minimum number of notes in an amount
*/
#include <stdio.h>
int main()
{
int amount;
int note500, note100, note50, note20, note10, note5, note2, note1;
/* Initialize all notes to 0 */
note500 = note100 = note50 = note20 = note10 = note5 = note2 = note1 = 0;
/* Input amount from user */
printf("Enter amount: ");
scanf("%d", &amount);
if(amount >= 500)
{
note500 = amount/500;
amount -= note500 * 500;
}
if(amount >= 100)
{
note100 = amount/100;
amount -= note100 * 100;
}
if(amount >= 50)
{
note50 = amount/50;
amount -= note50 * 50;
}
if(amount >= 20)
{
note20 = amount/20;
amount -= note20 * 20;
}
if(amount >= 10)
{
note10 = amount/10;
amount -= note10 * 10;
}
if(amount >= 5)
{
note5 = amount/5;
amount -= note5 * 5;
}
if(amount >= 2)
{
note2 = amount /2;
amount -= note2 * 2;
}
if(amount >= 1)
{
note1 = amount;
}
/* Print required notes */
printf("Total number of notes = \n");
printf("500 = %d\n", note500);
printf("100 = %d\n", note100);
printf("50 = %d\n", note50);
printf("20 = %d\n", note20);
printf("10 = %d\n", note10);
printf("5 = %d\n", note5);
printf("2 = %d\n", note2);
printf("1 = %d\n", note1);
return 0;
}
/*
Output :
Enter amount: 4673
Total number of notes =
500 = 9
100 = 1
50 = 1
20 = 1
10 = 0
5 = 0
2 = 1
1 = 1
*/