Divisor de despesas
Dex Pois é. Acabamos de voltar de uma parada de reabastecimento e cada um pagou por uma coisa diferente e agora ninguém concorda sobre quem deve a quem. Sempre vira a maior confusão. Você consegue construir alguma coisa onde a gente registre quem pagou o quê e ela diga como acertar as contas? Pelo bem da moral da tripulação 🙄
O que você vai construir
Add an expense (or 'done' to settle up):
Who paid? Ana
How much? 45.00
Add an expense (or 'done' to settle up):
Who paid? Bruno
How much? 30.00
Add an expense (or 'done' to settle up): done
Total: £75.00 split between 2 people (£37.50 each)
Ana is owed £7.50
Bruno owes £7.50O que você vai precisar
- Números e aritmética — dividir o total, calcular saldos
- Dicionários — acompanhar quanto cada pessoa pagou
- Listas — armazenar cada despesa conforme você as coleta
- Controle de fluxo — o loop de entrada que roda até o usuário digitar "done"
- Funções — separar a coleta do cálculo deixa a lógica mais clara
Dicas
Acompanhe o que cada pessoa pagou. Um dicionário com nomes como chaves e valores como valores torna fácil acumular totais por pessoa.
A parte justa é simples. Valor total dividido pelo número de pessoas. A diferença entre o que alguém pagou e a sua parte justa diz qual é o saldo: positivo significa que a pessoa deve receber, negativo significa que ela deve.
Colete primeiro, calcule depois. Reúna todas as despesas no loop. Quando o usuário digitar "done", faça todas as contas de uma vez.
Indo além
Quando o básico estiver funcionando:
- Mais de duas pessoas. A lógica é a mesma — calcule o saldo de cada pessoa em relação à parte justa. Mostre o resultado de cada pessoa.
- Despesas detalhadas. Permita que o usuário adicione uma descrição para cada despesa, depois imprima uma lista detalhada antes do acerto de contas.
- Quem paga a quem. Em vez de apenas mostrar saldos, calcule o conjunto mínimo de transferências necessárias para acertar as contas de todos.

