Python 我在代码中犯了什么错误?它正在运行,但没有提供我所展示的输入的答案
问题是: 你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区 决定开始存钱买房。由于湾区的房价很高, 你意识到,在你能负担得起贷款之前,你必须储蓄好几年 房子的付款。在A部分中,我们将确定你需要多长时间才能攒够钱 根据以下假设支付款项:Python 我在代码中犯了什么错误?它正在运行,但没有提供我所展示的输入的答案,python,Python,问题是: 你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区 决定开始存钱买房。由于湾区的房价很高, 你意识到,在你能负担得起贷款之前,你必须储蓄好几年 房子的付款。在A部分中,我们将确定你需要多长时间才能攒够钱 根据以下假设支付款项: 把你梦想家园的成本称为“我” 将您迄今为止保存的金额称为“当前”。你从电流开始 节省0美元 假设您明智地投资您的当前储蓄,年回报率为r(换句话说, 在每个月底,您将收到额外的“流动*r/12”资金投入 你的储蓄——12是因为r是年利率)。假
您的程序应要求用户输入以下变量:
i=int(input("Enter your annual salary:"))
p=float(input("Enter the percent of your salary to save, as a decimal:"))
c=float(input("Enter the cost of your dream home:"))
r=0
current=float(i*p*r/12)
for r in range(9999999):
if current<c:
current=current*(0.04)/12
else:
break
print("Number of months ="+ str( int(r)))
但我得到的结果是:
Enter your annual salary:120000
Enter the percent of your salary to save, as a decimal:.10
Enter the cost of your dream home:1000000
Number of months =9999998
谁能告诉我为什么我错了吗
非常抱歉之前我上传了一个稍微不同的问题;
我现在提供了相关问题。问题在这里:
current=current*(0.04)/12
在这一行中,您不需要累加,只需覆盖current的值。试着在纸上写出您的解决方案,并问问自己它是否有意义
for r in range(9999999):
if current<c:
current=current*(0.04)/12
else:
break
print("Number of months ="+ str( int(r)))
范围内r的(999999):
如果current为什么在范围(999999999)
?@Ironkey中使用,因为答案将远低于999999999,我想不出任何其他方法来运行for looplook进入,而True
loopI我不明白为什么1000个月是$120000/10%/$1000000作为输入参数的正确输出。这就是如果你想存1000000美元,每月存1000美元,而不产生任何利息的话所需要的时间。
for r in range(9999999):
if current<c:
current=current*(0.04)/12
else:
break
print("Number of months ="+ str( int(r)))