Dinheiro
Problema a Ser Solucionado
Em um arquivo chamado cash.py
em uma pasta chamada sentimental-cash
, escreva um programa que pergunta ao usuário quanto troco é devido e então divide o valor no menor número de moedas possível que pode ser usado para efetuar o pagamento. Você pode fazer isso exatamente como foi feito no Conjunto de Problemas 1, exceto que desta vez seu programa deve ser escrito em Python, e você deve presumir que o usuário informará o troco em dólares (por exemplo, 0,50 dólares em vez de 50 centavos).
Demonstração
Especificação
- Use
get_float
da CS50 Library para obter a entrada do usuário eprint
para exibir sua resposta. Presuma que as únicas moedas disponíveis são moedas de 25 centavos, 10 centavos, 5 centavos e 1 centavo.- Pedimos que você use
get_float
para conseguir lidar com dólares e centavos, embora sem o símbolo de cifrão. Em outras palavras, se algum cliente deve receber $ 9,75 (como no caso de um jornal custar 25 centavos, mas o cliente pagar com uma nota de $ 10), presuma que a entrada do seu programa será9,75
e não$ 9,75
ou975
. No entanto, se algum cliente deve receber $ 9 exatamente, presuma que a entrada do seu programa será9,00
ou apenas9
, mas, novamente, não$ 9
ou900
. Claro que, devido à natureza dos valores de ponto flutuante, seu programa provavelmente funcionará também com entradas como9,0
e9,000
; você não precisa se preocupar em verificar se a entrada do usuário está "formatada" como o dinheiro deveria ser.
- Pedimos que você use
- Se o usuário não fornecer um valor não negativo, seu programa deve pedir ao usuário um valor válido novamente e novamente até que o usuário obedeça.
- A propósito, para que possamos automatizar alguns testes de seu código, pedimos que a última linha de saída de seu programa seja apenas o menor número possível de moedas: um número inteiro seguido por uma nova linha.
Como Testar
Apesar de check50
estar disponível para este problema, encorajamos você a testar seu código primeiro por conta própria para cada um dos seguintes.
- Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite0,41
e pressione enter. Seu programa deve produzir4
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite0,01
e pressione enter. Seu programa deve produzir1
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite0,15
e pressione enter. Seu programa deve produzir2
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite1,60
e pressione enter. Seu programa deve produzir7
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite23
e pressione enter. Seu programa deve produzir92
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite4,2
e pressione enter. Seu programa deve produzir18
. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digite-1
e pressione enter. Seu programa deve rejeitar esta entrada como inválida, solicitando que o usuário digite outro número. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Digitefoo
e pressione enter. Seu programa deve rejeitar esta entrada como inválida, solicitando que o usuário digite outro número. - Execute seu programa como
python cash.py
e aguarde por uma solicitação de entrada. Não digite nada e pressione enter. Seu programa deve rejeitar esta entrada como inválida, solicitando que o usuário digite outro número.
Exatidão
check50 cs50/problems/2024/x/sentimental/cash
Estilo
style50 cash.py
Como Enviar
submit50 cs50/problems/2024/x/sentimental/cash