【发布时间】:2021-06-08 02:48:44
【问题描述】:
我目前正在做下面列出的 MIT OCW 问题集 1,我几乎已经解决了这个问题,只是我在其中一个测试用例的输出上遇到了一些问题。
你已经从麻省理工学院毕业,现在有一份很棒的工作!你搬到旧金山湾区 决定要开始存钱买房。由于湾区房价非常高, 你意识到你必须存好几年才能负担得起 支付房子。在 A 部分,我们将确定您需要多长时间才能存够 考虑到以下假设,支付首付的钱:
- 调用您梦想家园的总成本。
- 调用预付款part_down_payment 所需的费用部分。为了 简单来说,假设 part_down_payment = 0.25 (25%)。
- 调用您迄今为止节省的金额 current_savings。你从一个电流开始 节省 0 美元。
- 假设您明智地投资当前的储蓄,年回报为 r(换句话说, 在每个月底,您会收到一笔额外的 current_savings*r/12 资金用于投入 您的储蓄 - 12 是因为 r 是年利率)。假设您的投资赚取 r = 0.04 (4%) 的回报。
- 假设您的年薪是年薪。
- 假设您将每月将一定数额的工资用于储蓄 首付。调用那个part_saved。此变量应为十进制形式(即 0.1 10%)。
- 在每个月末,您的储蓄将随着您的投资回报而增加,
加上你月薪的百分比(年薪/12)。
编写一个程序来计算你需要多少个月才能存够一笔钱
支付。您希望您的主要变量是浮点数,因此您应该将用户输入转换为浮点数。
1 您的程序应要求用户输入以下变量: - 起薪年薪(annual_salary)
- 要保存的工资部分 (portion_saved)
- 梦想家园的成本 (total_cost)
这是我目前的代码
portion_down_payment = 0.25
r = 0.04
annual_salary = float(input("Enter your annual salary: "))
portion_saved = float(input("Enter the percent of your salary to save, as a decimal: "))
total_cost = float(input("Enter the cost of your dream home: "))
months = 0
money_saved = 0
while money_saved < (total_cost*portion_down_payment):
months += 1
money_saved += annual_salary*portion_saved/12
interest = (money_saved*r)/12
money_saved += interest
print(f"Number of months: {months}")
输入的一个测试用例是:120,000 用于年薪,0.1 用于 part_saved,1000000 用于 total_cost。预期的输出是
Number of months: 183
但我的代码的实际输出是
Number of months: 182
【问题讨论】:
标签: python