Skip to content
This page has been auto-translated and may contain errors.View in English

费用分摊器

Dex 好。我们刚从补给站回来,每个人都付了不同的东西的钱,现在没人能就谁欠谁达成一致。这事总是变成一场闹剧。你能做个东西吗?我们记录谁付了什么,然后它告诉我们怎么结算?为了船员士气 🙄

你要构建的内容

Add an expense (or 'done' to settle up):
Who paid? 小明
How much? 45.00

Add an expense (or 'done' to settle up):
Who paid? 小红
How much? 30.00

Add an expense (or 'done' to settle up): done

Total: £75.00 split between 2 people (£37.50 each)
小明 is owed £7.50
小红 owes £7.50

你需要的知识

  • 数字与算术 — 拆分总额、计算余额
  • 字典 — 跟踪每个人支付了多少
  • 列表 — 在收集过程中存储每笔支出
  • 控制流 — 在用户输入 "done" 之前持续运行的输入循环
  • 函数 — 将收集与计算分离,使逻辑更清晰

提示

跟踪每个人支付了什么。 用名字作为键、金额作为值的字典,可以轻松地累计每个人的总额。

公平份额很简单。 总金额除以人数。某人支付的金额与其公平份额之间的差额就是他们的余额:正数表示别人欠他,负数表示他欠别人。

先收集,后计算。 在循环中收集所有支出。一旦用户输入 "done",再一次性完成所有数学运算。

进一步拓展

基础功能完成后:

  • 超过两人。 逻辑相同 — 根据公平份额计算每个人的余额。显示每个人的结果。
  • 分项支出。 让用户为每笔支出添加描述,然后在结算前打印一份分项列表。
  • 谁付给谁。 不仅显示余额,还要计算结算所有人所需的最少转账次数。