• Matéria: Informática
  • Autor: nicolasltb
  • Perguntado 8 anos atrás

Considerando a existência de notas nos valores 100R$, 50R$, 20R$, 10R$, 5R$, 2R$ e 1R$, escreva um algoritmo que capture um valor inteiro em reais e determine o menor numero de notas para se obter o montante fornecido. Use a linguagem de programação portugol.

Respostas

respondido por: bokomoko
0
O truque aí é usar divisão inteira e resto.

Começamos pela nota maior, 100 reais e vamos para as notas menores até chegar a 1 real

Então imagine um valor de 13.489 reais

Dividimos inteiro 13.489 por 100
13.489 dividido inteiro por 100 dá 134 e resta 89
Ou seja, 134 notas de 100 reais, dá 13400 reais

aí pegamos o resto, que é 89 reais, divididmos inteiro pelo valor da próxima maior nota que é  50
89 // 50 = 1 nota de 50 reais e resta 39 

aí pegamos o resto, que é 39 e dividimos pelo valor da próxima nota que é 20
39 // 20 = 1 nota de 20 reais e resta 19

pegamos o 19 e dividimos pela próxima nota que é 10
19 // 10 = 1 nota de 10 reais e resta 9

pegamos o 9 e dividimos pela próxima nota que é 5
9 // 5 = 1 nota de 5 reais e resta 4 reais

pegamos o 4 e dividimos pela próxima nota que é 2
4 // 2 = 2 notas de 2 reais. E acabou pois o resto é 0

Então o truque é esse, um loop enquanto o resto != 0 e vai dividindo pelo valor da maior nota possível até chegar a resto 0. O resto 0 sempre será alcançado pois usamos a nota de 1 real. Todo número é divisível por 1 portanto, em algum momento o loop para.


Perguntas similares