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:
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.
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
6 anos atrás
6 anos atrás
8 anos atrás
9 anos atrás