URI Online Judge Solution 1021 Banknotes and Coins using Python Programming Language.
Read a value of floating point with two decimal places. This represents a monetary value. After this, calculate the smallest possible number of notes and coins on which the value can be decomposed. The considered notes are of 100, 50, 20, 10, 5, 2. The possible coins are of 1, 0.50, 0.25, 0.10, 0.05 and 0.01. Print the message “NOTAS:” followed by the list of notes and the message “MOEDAS:” followed by the list of coins.
Input
The input file contains a value of floating point N (0 ≤ N ≤ 1000000.00).
Output
Print the minimum quantity of banknotes and coins necessary to change the initial value, as the given example.
Input Sample | Output Sample |
576.73
|
NOTAS:
5 nota(s) de R$ 100.00 1 nota(s) de R$ 50.00 1 nota(s) de R$ 20.00 0 nota(s) de R$ 10.00 1 nota(s) de R$ 5.00 0 nota(s) de R$ 2.00 MOEDAS: 1 moeda(s) de R$ 1.00 1 moeda(s) de R$ 0.50 0 moeda(s) de R$ 0.25 2 moeda(s) de R$ 0.10 0 moeda(s) de R$ 0.05 3 moeda(s) de R$ 0.01 |
4.00
|
NOTAS:
0 nota(s) de R$ 100.00 0 nota(s) de R$ 50.00 0 nota(s) de R$ 20.00 0 nota(s) de R$ 10.00 0 nota(s) de R$ 5.00 2 nota(s) de R$ 2.00 MOEDAS: 0 moeda(s) de R$ 1.00 0 moeda(s) de R$ 0.50 0 moeda(s) de R$ 0.25 0 moeda(s) de R$ 0.10 0 moeda(s) de R$ 0.05 0 moeda(s) de R$ 0.01 |
91.01
|
NOTAS:
0 nota(s) de R$ 100.00 1 nota(s) de R$ 50.00 2 nota(s) de R$ 20.00 0 nota(s) de R$ 10.00 0 nota(s) de R$ 5.00 0 nota(s) de R$ 2.00 MOEDAS: 1 moeda(s) de R$ 1.00 0 moeda(s) de R$ 0.50 0 moeda(s) de R$ 0.25 0 moeda(s) de R$ 0.10 0 moeda(s) de R$ 0.05 1 moeda(s) de R$ 0.01 |
Solution
from math import *
A = float(input())
T = floor(A)
P = A - T
T100 = T50= T20 = T10 = T5 = T2 = T1 = P50 = P25 = P10 = P5 = P1 = 0
if A>=100:
T100 = int(A/100)
A = A%100
if A>=50:
T50 = int(A/50)
A = A%50
if A>=20:
T20 = int(A/20)
A = A%20
if A>=10:
T10 = int(A/10)
A = A%10
if A>=5:
T5 = int(A/5)
A = A%5
if A>=2:
T2 = int(A/2)
A = A%2
if A>=1:
T1 = int(A/1)
A = A%1
if A>=0.5:
P50 = int(A/0.5)
A = A%0.5
if A>=0.25:
P25 = int(A/0.25)
A = A%0.25
if A>=0.10:
P10 = int(A/0.10)
A = A%0.10
if A>=0.05:
P5 = int(A/0.05)
A = A%0.05
else:
P1 = int(A/0.01)
print("NOTAS:")
print("%d nota(s) de R$ 100.00" % T100)
print("%d nota(s) de R$ 50.00" % T50)
print("%d nota(s) de R$ 20.00" % T20)
print("%d nota(s) de R$ 10.00" % T10)
print("%d nota(s) de R$ 5.00" % T5)
print("%d nota(s) de R$ 2.00" % T2)
print("MOEDAS:")
print("%d moeda(s) de R$ 1.00" % T1)
print("%d moeda(s) de R$ 0.50" % P50)
print("%d moeda(s) de R$ 0.25" % P25)
print("%d moeda(s) de R$ 0.10" % P10)
print("%d moeda(s) de R$ 0.05" % P5)
print("%d moeda(s) de R$ 0.01" % P1)
Using C Programming Language
#include
int main()
{
double n, d[] = {100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0, 0.5, 0.25, 0.10, 0.05, 0.01};
int t = 0, c;
scanf("%lf", &n);
printf("NOTAS:\n");
t = 0;
n+=1e-9;
while (d[t] >= 0.01)
{
c = 0;
while (n >= d[t])
{
n -= d[t];
c++;
}
if (d[t] == 1.0)
printf("MOEDAS:\n");
if (d[t] >= 2.0 )
printf("%d nota(s) de R$ %.2f\n", c, d[t]);
else
printf("%d moeda(s) de R$ %.2f\n", c, d[t]);
t++;
}
return 0;
}
Comments
Post a Comment