1018 - Cédulas
Um raciocínio novo envolvendo divisão e resto de divisão.
Descrição
Solução
A ideia deste problema é ir utilizando divisões e restos de divisão para ir dividindo o número recebido em pedaços adequados de acordo com o enunciado, mais ou menos como faríamos se fôssemos resolver esse problema na vida real.
Por exemplo, com o número 576, seguimos o seguinte raciocínio:
R$ 576,00 precisa de 5 notas de R$ 100,00 porque 576/100 = 5 (divisão inteira).
Beleza, representamos 500, então agora sobra 76.
R$ 76,00 precisa de 1 nota de R$ 50,00 porque 76/50 = 1.
OK, agora temos 26.
R$ 26,00 precisa de 1 nota de R$ 20,00 porque 26/20 = 1.
Temos 6.
R$ 6,00 precisa de 0 nota de R$ 10,00 porque 6/10 = 0.
Continuamos com 6.
R$ 6,00 precisa de 1 nota de R$ 5,00 porque 6/5 = 1.
Agora só sobrou 1.
R$ 1,00 precisa de 0 nota de R$ 2,00 porque 1/2 = 0.
Continua sobrando 1.
Agora o que sobrou é o que dá para representar com 1 nota de R$ 1,00.
Dessa maneira, nossa resposta final são 5 notas de R$ 100,00, 1 nota de R$ 50,00, 1 de R$ 20,00, 1 de R$ 5,00 e 1 de R$ 1,00. Experimente com outros valores de N e veja que pegar as divisões inteiras e seus respectivos restos forma um raciocínio interessante para a resolução deste e dos próximos problemas subsequentes.
#include <stdio.h>
int main(){
int N;
scanf("%d", &N);
printf("%d\n", N);
printf("%d nota(s) de R$ 100,00\n", N/100);
N %= 100;
printf("%d nota(s) de R$ 50,00\n", N/50);
N %= 50;
printf("%d nota(s) de R$ 20,00\n", N/20);
N %= 20;
printf("%d nota(s) de R$ 10,00\n", N/10);
N %= 10;
printf("%d nota(s) de R$ 5,00\n", N/5);
N %= 5;
printf("%d nota(s) de R$ 2,00\n", N/2);
N %= 2;
printf("%d nota(s) de R$ 1,00\n", N);
return 0;
}
Last updated
Was this helpful?