- 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)
Meu exercido é o mesmo porém só consigo usar o Portugol pelo celular, será que alguém pode me ajudar?
Excluirpreciso 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)
valor: float = float(input())
ResponderExcluirpapel: list = [100.00, 50.00, 20.00, 10.00, 5.00, 2.00]
print('NOTAS:')
for i in papel:
print(f'{int(valor // i)} nota(s) de R$ {i}')
valor %= i
mais simples ainda kkk
Tentei deixar o meu com o resultado mais limpo, onde só mostra o que a pessoa vai receber:
ResponderExcluirsaque = int(input("Digite o valor do saque (mínimo 10, máximo 600): "))
#Encerrar o script caso o saque seja menor que 10 ou maior que 600
if saque < 10 or saque > 600:
quit("Saque invalido.")
#Executa os cálculos só após confirmar que o saque é valido
nota100 = saque // 100
resto100 = saque % 100
nota50 = resto100 // 50
resto50 = resto100 % 50
nota10 = resto50 // 10
resto10 = resto50 % 10
nota1 = resto10 // 1
print(f"Com o saque de {saque} você vai receber: ")
if nota100 != 0:
print(f"{nota100} de notas de 100")
if nota50 != 0:
print(f"{nota50} de notas de 50")
if nota10 != 0:
print(f"{nota10} de notas de 10")
if nota1 != 0:
print(f"{nota1} de notas de 1")
Exemplo com o valor 400:
Digite o valor do saque (mínimo 10, máximo 600): 400
Com o saque de 400 você vai receber:
4 de notas de 100
Exemplo com valor 211:
Digite o valor do saque (mínimo 10, máximo 600): 211
Com o saque de 211 você vai receber:
2 de notas de 100
1 de notas de 10
1 de notas de 1
boa !
ExcluirMeu codigo >>>
ResponderExcluirvalorSaque = int(input("Qual o valor deseja sacar?"))
while valorSaque < 10 or valorSaque > 600:
print("Valor Inválido.\nValores disponiveis de R$10 a R$600\n")
valorSaque = int(input("Qual o valor deseja sacar?"))
nota100 = valorSaque // 100
nota50 = (valorSaque % 100) // 50
nota10 = (((valorSaque % 100) % 50) // 10)
nota5 = ((((valorSaque % 100) % 50) % 10) // 5)
nota1 = (((((valorSaque % 100) % 50) % 10) % 5) // 1)
print("\nVoce Sacou:\n%d notas de R$100\n%d notas de R$50\n%d notas de R$10\n%d notas de R$5\n"
"%d notas de R$1\n" %(nota100,nota50,nota10,nota5,nota1))
valorSaque = int(input("Qual o valor deseja sacar?"))
ResponderExcluirwhile valorSaque < 10 or valorSaque > 600:
print("Valor Inválido.\nValores disponiveis de R$10 a R$600\n")
valorSaque = int(input("Qual o valor deseja sacar?"))
nota100 = valorSaque // 100
nota50 = (valorSaque % 100) // 50
nota10 = (((valorSaque % 100) % 50) // 10)
nota5 = ((((valorSaque % 100) % 50) % 10) // 5)
nota1 = (((((valorSaque % 100) % 50) % 10) % 5) // 1)
print("\nVoce Sacou:\n%d notas de R$100\n%d notas de R$50\n%d notas de R$10\n%d notas de R$5\n"
"%d notas de R$1\n" %(nota100,nota50,nota10,nota5,nota1))
# -*- coding: utf-8 -*-
ResponderExcluirsaque = float(input('Valor do saque: (min R$10 - max R$600): R$'))
if saque < 10 or saque > 600:
print('Valor Inválido!')
else:
notas_100 = int(saque / 100)
notas_50 = int((saque % 100) / 50)
notas_10 = int((saque % 50) / 10)
notas_5 = int((saque % 10) / 5)
notas_1 = int((saque % 5) / 1)
print(f'Você precisará de:\n\
{notas_100} nota(s) de R$100\n\
{notas_50} nota(s) de R$50\n\
{notas_10} nota(s) de R$10\n\
{notas_5} nota(s) de R$5\n\
{notas_1} nota(s) de R$1')
Olá , segue script que leva em conta o plural da quantidade de notas!!
ResponderExcluirprint('Olá o valor mínimo de saque é 10 reais e o valor máximo é 600 reias !!')
print('Notas disponíveis 1, 5, 10, 50 e 100 reias.')
saque = str(input('Digite o valor do seu saque : '))
if len(saque) == 2:
cen = 0
dez = int(saque[0])
und = int(saque[1])
elif len(saque) == 3:
cen = int(saque[0])
dez = int(saque[1])
und = int(saque[2])
resp = []
if cen == 1:
resp.append(f'{cen} nota de cem')
if cen > 1:
resp.append(f'{cen} notas de cem')
if dez == 1:
resp.append(f'{dez} nota de dez')
if 1 < dez < 5:
resp.append(f'{dez} notas de dez')
if dez == 5:
resp.append(f'{1} nota de cinquenta')
if dez > 5:
resp.append(f'{1} nota de cinquenta')
if dez - 5 == 1:
resp.append(f'{1} nota de dez')
else:
resp.append(f'{dez - 5} notas de dez')
if und == 1:
resp.append(f'{und} nota de um')
if 1 < und < 5:
resp.append(f'{und} notas de um')
if und == 5:
resp.append(f'{1} nota de cinco')
if und > 5:
resp.append(f'{1} nota de cinco')
if und - 5 == 1:
resp.append(f'{1} nota de um')
else:
resp.append(f'{und - 5} notas de um')
resp_certa = [str(a) for a in resp]
print(" , " . join(resp_certa))
Estava quebrando a cabeça para descobrir como fazer o programa mostrar apenas a quantidade das notas que de fato serão sacadas, depois de 3 horas vi que é apenas testar cada um com if se é > 0, segue o código:
ResponderExcluirvalor_saque = int(input('Digite o valor que deseja sacar: '))
if valor_saque < 10:
print('\nO valor mínimo a se sacar é de R$10,00!\n')
elif valor_saque > 600:
print('\nO valor máximo a se sacar é de R$600,00!\n')
else:
notas100 = valor_saque // 100
valor_saque = valor_saque - notas100 * 100
notas50 = valor_saque // 50
valor_saque = valor_saque - notas50 * 50
notas10 = valor_saque // 10
valor_saque = valor_saque - notas10 * 10
notas5 = valor_saque // 5
valor_saque = valor_saque - notas5 * 5
notas1 = valor_saque // 1
valor_saque = valor_saque - notas1
print('\nVocê sacará: \n')
if notas100 > 0:
print(f'{notas100} nota(s) de 100 reais')
if notas50 > 0:
print(f'{notas50} nota(s) de 50 reais')
if notas10 > 0:
print(f'{notas10} nota(s) de 10 reais')
if notas5 > 0:
print(f'{notas5} nota(s) de 5 reais')
if notas1 > 0:
print(f'{notas1} notas de 1 real')
print('\nObrigado por utilizar meu programa :)\n')