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:

  1. R$ 576,00 precisa de 5 notas de R$ 100,00 porque 576/100 = 5 (divisão inteira).

  2. Beleza, representamos 500, então agora sobra 76.

  3. R$ 76,00 precisa de 1 nota de R$ 50,00 porque 76/50 = 1.

  4. OK, agora temos 26.

  5. R$ 26,00 precisa de 1 nota de R$ 20,00 porque 26/20 = 1.

  6. Temos 6.

  7. R$ 6,00 precisa de 0 nota de R$ 10,00 porque 6/10 = 0.

  8. Continuamos com 6.

  9. R$ 6,00 precisa de 1 nota de R$ 5,00 porque 6/5 = 1.

  10. Agora só sobrou 1.

  11. R$ 1,00 precisa de 0 nota de R$ 2,00 porque 1/2 = 0.

  12. Continua sobrando 1.

  13. 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