- Exemplo 1: Para sacar a quantia de 256 reais, o programa fornece duas notas de 100, uma nota de 50, uma nota de 5 e uma nota de 1;
- Exemplo 2: Para sacar a quantia de 399 reais, o programa fornece três notas de 100, uma nota de 50, quatro notas de 10, uma nota de 5 e quatro notas de 1.
"
Contar Notas e Cédulas em Python
Há várias maneiras diferentes de darmos 256 reais, ou qualquer outro valor.Poderíamos, por exemplo dar 256 cédulas de 1 real (hoje em dia só moeda, mas antes tinha cédula de 1 real sim).
Mas seria altamente inconveniente sair de um caixa eletrônico com centenas de cédulas. Ou seja, queremos usar o menor número de cédulas possíveis!
Isso é feito da seguinte maneira: dando cédulas de valor alto.
Notas de R$ 100,00
Como fazemos isso?
Dividindo o valor que o usuário pediu pra sacar por 100.
Vamos colocar em 'numero', o valor que ele solicitou que fosse sacado.
Se fizermos:
cem = numero / 100
Teremos que cem=2.56
Não seria legal se a gente tirasse esse ponto fluante e essa parte decimal?
É fácil fazer isso, só usar a função int(), que vai transformar esse número em inteiro (ele pega a parte inteira e descarta o resto).
Assim, o número de cédulas de 100 reais é:
cem = int( numero/10 )
Se antes queríamos sacar 256 reais, agora queremos somente 56, pois já demos os 200 reais.
Vamos transformar nosso valor de 256 pra 56 da seguinte maneira:
numero = numero - (cem*100)
(numero = 256 - 2*100 = 56)
Concorda?
Notas de R$ 50,00
Para isso, basta dividir nosso número por 50 e pegar a parte inteira, como fizemos com as cédulas de 100:
cinquenta =int( numero/50 )
No nosso exemplo de 256 reais: cinquenta = int(56/50) = int(1.12) = 1
Agora que já usamos as de 50 reais, vamos tirar ela de nosso número:
numero = numero - (cinquenta*50)
(numero = 56 - 1.50)
Notas de R$ 10,00
dez = int( numero/10 )
numero = numero - (dez*10)
Notas de R$ 5,00
numero = numero - (cinco*5)
E o que sobrou, é nota de um real:
um = numero
Nosso código Python fica?
numero = int(input('Valor para sacar [10-600]: ')) cem = int(numero / 100) numero = numero - (cem*100) cinquenta = int(numero/50) numero = numero - (cinquenta*50) dez = int(numero/10) numero = numero - (dez*10) cinco = int(numero/5) numero = numero - (cinco*5) um = numero print('Notas R$100,00 = ',cem) print('Notas R$ 50,00 = ',cinquenta) print('Notas R$ 10,00 = ',dez) print('Notas R$ 5,00 = ',cinco) print('Notas R$ 1,00 = ',um)
Nosso código também poderia ser:
numero = int(input('Valor para sacar [10-600]: ')) cem = int(numero / 100) numero = numero % 100 cinquenta = int(numero/50) numero = numero % 50 dez = int(numero/10) numero = numero % 10 cinco = int(numero/5) numero = numero % 5 um = numero print('Notas R$100,00 = ',cem) print('Notas R$ 50,00 = ',cinquenta) print('Notas R$ 10,00 = ',dez) print('Notas R$ 5,00 = ',cinco) print('Notas R$ 1,00 = ',um)
Consegue entender o motivo?
print("Valor mínimo do saque: R$10,00.")
ResponderExcluirprint("Valor máximo do saque: R$600,00")
saque = int(input("Valor do saque: R$"))
while(saque<10) or (saque>600):
print("Valor fora dos limites.")
saque = int(input("Digite novamente: R$"))
if(saque>=10) and (saque<=600):
resto1 = saque % 100
resto2 = resto1 % 50
resto3 = resto2 % 10
resto4 = resto3 % 5
nota100,nota50,nota10,nota5,nota1 = saque//100,resto1//50,resto2//10,resto3//5,resto4//1
print("R$100,00:",nota100)
print("R50,00:",nota50)
print("R$10,00:",nota10)
print("R$5,00:",nota5)
print("R$1,00:",nota1)
#FIZ DIFERENTE
ResponderExcluirprint("Valor mínimo do saque: R$10,00.")
print("Valor máximo do saque: R$600,00")
saque = int(input("Valor do saque: R$"))
while(saque<10) or (saque>600):
print("Valor fora dos limites.")
saque = int(input("Digite novamente: R$"))
if(saque>=10) and (saque<=600):
resto1 = saque % 100
resto2 = resto1 % 50
resto3 = resto2 % 10
resto4 = resto3 % 5
nota100,nota50,nota10,nota5,nota1 = saque//100,resto1//50,resto2//10,resto3//5,resto4//1
print("R$100,00:",nota100)
print("R50,00:",nota50)
print("R$10,00:",nota10)
print("R$5,00:",nota5)
print("R$1,00:",nota1)
preciso ainda hoje de ajuda nessa questão : Escreva um programa em Python que será utilizado em um novo caixa automático de banco, que ao receber um valor em reais informe a quantidade de cada tipo de cédula e moedas necessárias para ser fornecida.
ResponderExcluirO caixa trabalha com as seguintes cédulas e moedas:
* Cédulas de: R$ 200,00, R$ 100,00, R$ 50,00, R$ 20,00, R$ 10,00, R$ 5,00 e R$ 2,00.
* Modelas de: R$ 1,00, R$ 0,50, R$ 0,25, R$ 0,10, R$ 0,05 e R$ 0,01.
Na real esse "int(numero / 100)" pode ser trocado por "numero // 100"
ResponderExcluirfoi o q eu fiz e fica bem mais facil kkkkk
Excluir#FIZ DIFERENTE
ResponderExcluirvalor = int(input('Qual o valor que você deseja sacar? '))
#Quantidade de notas de 100
a = valor // 100
a2 = valor % 100
#Quantidade de notas de 50
b = a2 // 50
b2 = a2 % 50
#Quantidade de notas de 20
c = b2 // 20
c2 = b2 % 20
#Quantidade de notas de 10
d = c2 // 10
d2 = c2 % 10
#Quantidade de notas de 5
e = d2 // 5
e2 = d2 % 5
#Quantidade de notas de 2
f = e2 // 2
f2 = e2 % 2
#Quantidade de notas 1
g = f2 // 1
print('Serão sacadas: ')
print(a, 'nota(s) de 100')
print(b, 'nota(s) de 50')
print(c, 'nota(s) de 20')
print(d, 'nota(s) de 10')
print(e, 'nota(s) de 5')
print(f, 'nota(s) de 2')
print(g, 'nota(s) de 1')
n1=0
ResponderExcluirn5=0
n10=0
n50=0
n100=0
saque = int(input("Digite o valor a ser sacado( minimo: R$10: maximo: R$ 600): R$ "))
if saque < 10 or saque > 600:
print("o valor digitado não pode ser sacado")
else:
n100= saque//100
resto= saque%100
n50= resto//50
resto %= 50
n10= resto//10
resto %=10
n5= resto//5
resto %=5
n1= resto//1
valorsacado=n1*1+n5*5+n10*10+n50*50+n100*100
print("O valor sacado: R$ ", valorsacado)
print("Notas de R$ 100:", n100)
print("Notas de R$ 50:", n50)
print("Notas de R$ 10:", n10)
print("Notas de R$ 5:", n5)
print("Notas de R$ 1:", n1)