URI Online Judge | 1018
Cédulas
Leia um valor inteiro. A seguir, calcule o menor número de notas possíveis (cédulas) no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir mostre o valor lido e a relação de notas necessárias.
Soluções para a tarefa
#include <stdio.h>
int main()
{
int N,a,b,c,d,e,f,g,h,i,j,k,l;
scanf ("%d", &N);
a=N/100;
b=N%100;
c=b/50;
d=b%50;
e=d/20;
f=d%20;
g=f/10;
h=f%10;
i=h/5;
j=h%5;
k=j/2;
l=j%2;
printf ("%d\n",N);
printf ("%d nota(s) de R$ 100,00\n",a);
printf ("%d nota(s) de R$ 50,00\n",c);
printf ("%d nota(s) de R$ 20,00\n",e);
printf ("%d nota(s) de R$ 10,00\n",g);
printf ("%d nota(s) de R$ 5,00\n",i);
printf ("%d nota(s) de R$ 2,00\n",k);
printf ("%d nota(s) de R$ 1,00\n",l);
return 0;
}
Resposta:
let valor = 189;
let notaCem = 0;
let notaCinquenta = 0;
let notaVinte = 0;
let notaDez = 0;
let notaCinco = 0;
let notaDois = 0;
let notaUm = 0;
while (valor != 0) {
if (valor >= 100) {
valor -= 100;
notaCem++;
}
else if (valor >= 50) {
valor -= 50;
notaCinquenta++;
}
else if (valor >= 20) {
valor -= 20;
notaVinte++;
}
else if (valor >= 10) {
valor -= 10;
notaDez++;
}
else if (valor >= 5) {
valor -= 5;
notaCinco++;
}
else if (valor >= 2) {
valor -= 2;
notaDois++;
}
else if (valor >= 1) {
valor -= 1;
notaUm++;
}
}
console.log(notaCem + " nota(s) de R$ 100,00");
console.log(notaCinquenta + " nota(s) de R$ 50,00");
console.log(notaVinte + " nota(s) de R$ 20,00");
console.log(notaDez + " nota(s) de R$ 10,00");
console.log(notaCinco + " nota(s) de R$ 5,00");
console.log(notaDois + " nota(s) de R$ 2,00");
console.log(notaUm + " nota(s) de R$ 1,00");
}
Explicação:
O código está em JavaScript
Neste exemplo fica mais simples de se entender, embora tenha muitas comparações.
O valor inicializado como 189 é minha cédula, sempre que entro em uma das condições, por exemplo
valor >= 100
subtraio 100 de valor até chegar o momento que o meu valor seja inferior a 100 e acrescento 1 na variável notaCem. Então ele vai tentar entrar em condições de valor menor.