头歌python-实验4存款买房ABC

一:任务描述A

本关任务:编写一个计算存款买房的小程序。

相关知识

存款买房问题描述

你刚刚大学毕业,在北京找到了一份很好的工作,决定开始存钱买房。由于北京的房价很高,你要攒几年钱才能付得起房子的首付。

现根据以下假定来计算你需要多长时间才能攒够首付款:

  1. 将你想购买的房子的总价称为 total_cost

  2. 将首付款占总房价的比例称为 portion_down_payment。为简单起见,假设 portion_down_payment = 0.30(30%)

  3. 将存款金额称为 current_savings。你的存款从 0 元开始。

  4. 假设你的年薪是 annual_salary,按 12 个月平均发放,单位是元。

  5. 假设你每个月都要拿出一定百分比的工资来存首付。称为 portion_saved,此值为一个表示百分比的整数,例如 50 表示 50%。

写一个程序来计算你需要多少个月才能攒够钱付定金,不足一个月按一个月计算。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出计算的首付款、月存款、存够首付的月份数目。

测试说明

平台会对你编写的代码进行测试:

输入格式 输入为三行 每行一个浮点数,分别代表房价、年薪、月存工资的百分数。

输出格式 输出为三行 分别为根据输入值计算的首付款、月存款、存够首付的月份数目,输出结果严格保留 2 位小数,具体输出格式见示例。

示例 1 输入:
2500000 120000 70

输出:

首付 750000.0 元 月存款 7000.00 元 需要108个月可以存够首付

import math


total_cost = float(input())           # '请输入总房价:'total_cost为当前房价
annual_salary = float(input())        # '请输入年薪:'
portion_saved = float(input()) / 100  # '请输入月存款比例:'月存款比例,输入30转为30%

# 根据首付款比例计算首付款金额和每个月需要存款数额
# 补充你的代码




print(f'首付 {down_payment:.2f} 元', )
print(f'月存款 {monthly_deposit:.2f} 元')

# 计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
# 补充你的代码




print(f'需要{math.ceil(number_of_months)}个月可以存够首付')

二:任务描述B

本关任务:编写一个能计算存款买房的小程序。

相关知识

存款买房问题描述

你刚刚大学毕业,在北京找到了一份很好的工作,决定开始存钱买房。由于北京的房价很高,你要攒几年钱才能付得起房子的首付。

现根据以下假定来计算你需要多长时间才能攒够首付款:

  1. 将你想购买的房子的总价称为 total_cost

  2. 将首付款占总房价的比例称为 portion_down_payment。为简单起见,假设 portion_down_payment = 0.30(30%)

  3. 将存款金额称为 current_savings。你的存款从 0 元开始。

  4. 假设你的年薪是 annual_salary,按 12 个月平均发放,单位是元。

  5. 假设你每个月都要拿出一定百分比的工资来存首付。称为 portion_saved,此值为一个表示百分比的整数,例如 50 表示 50%。

  6. 假定你每 6 个月加一次工资,每半年加薪比例 semi_annual_raise 是一个表示百分比的整数,例如 7 表示 7%,即第 7 个月的月头涨一次工资,工资涨幅为 7%,以后每过 6 个月再涨一次工资。

写一个程序来计算你需要多少个月才能攒够钱付定金,不足一个月按一个月计算。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出首付款、每年年底已存工资款总数、存够首付的月数 n

测试说明

输入格式: 输入为四行 每行一个浮点数,分别表示房价、年薪、月存储工资百分数、半年工资涨幅百分数。

输出格式: 输出为若干行 第一行为首付款,最后一行为存够首付的月数 n,中间行是每年年底已存工资款总数(取整)。具体格式见示例。

示例 1 输入: 4800000 240000 70 7

输出:
首付 1440000.00 元 第12个月月末有173,880元存款 第24个月月末有372,955元存款 第36个月月末有600,876元存款 第48个月月末有861,823元存款 第60个月月末有1,160,582元存款 需要70个月可以存够首付

total_cost = float(input())           # total_cost为当前房价
annual_salary = float(input())        # 年薪
portion_saved = float(input()) / 100  # 月存款比例,输入30转为30%
semi_annual_raise = float(input()) /100     # 输入每半年加薪比例,输入7转化为7%

portion_down_payment = 0.3      # 首付比例,浮点数
# 补充你的代码,计算首付款     


print(f'首付 {down_payment:.2f} 元')

current_savings = 0                                # 存款金额,从0开始
number_of_months = 0
monthly_salary = annual_salary/12                  # 月工资
monthly_deposit = monthly_salary * portion_saved   # 月存款
# 计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
# 补充你的代码 
                                         

    if number_of_months % 12 == 0:
        print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_savings))
print(f'需要{number_of_months}个月可以存够首付')

 

三:任务描述C

本关任务:编写一个能计算存款买房的小程序。

相关知识

存款买房问题描述

你刚刚大学毕业,在北京找到了一份很好的工作,决定开始存钱买房。由于北京的房价很高,你要攒几年钱才能付得起房子的首付。

现根据以下假定来计算你需要多长时间才能攒够首付款:

  1. 将你想购买的房子的总价称为 total_cost

  2. 将首付款占总房价的比例称为 portion_down_payment。为简单起见,假设 portion_down_payment = 0.30(30%)

  3. 将存款金额称为 current_savings。你的存款从 0 元开始。

  4. 假设你的年薪是 annual_salary,按 12 个月平均发放,单位是元。

  5. 假设你每个月都要拿出一定百分比的工资来存首付。称为portion_saved,此值为一个表示百分比的整数,例如 50 表示50%

  6. 假定你每 6 个月加一次工资,每半年加薪比例 semi_annual_raise 是一个表示百分比的整数,例如 7 表示 7%,即第 7131925... 个月月头涨一次工资,工资涨幅为 7%。

  7. 假设你每个月都是月初发工资,同时会收到上一个月的存款利息,存款年利率 interest_rate 固定为 2.25%

写一个程序来计算你需要多少个月才能攒够钱付定金,不足一个月按一个月计算。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出首付款、每年年底已存工资款总数、存够首付的月数 n

测试说明

平台会对你编写的代码进行测试:

输入格式: 输入为四行 每行一个浮点数,分别表示房价、年薪、月存储工资百分数、半年工资涨幅百分数。

输出格式: 输出为若干行 第一行为首付款,最后一行为存够首付的月数n,中间行是每年年底已存工资款总数。具体格式见示例。

示例 1 输入: 8500000 150000 70 9

输出:
首付 2550000.00 元 第12个月月末有110,837元存款 第24个月月末有245,042元存款 第36个月月末有407,068元存款 第48个月月末有602,206元存款 第60个月月末有836,746元存款 第72个月月末有1,118,159元存款 第84个月月末有1,455,325元存款 第96个月月末有1,858,796元存款 第108个月月末有2,341,109元存款 需要113个月可以存够首付

 

total_cost = float(input())  # total_cost为当前房价
annual_salary = float(input())  # 年薪
portion_saved = float(input()) / 100  # 月存款比例,输入30转为30%
semi_annual_raise = float(input()) / 100  # 输入每半年加薪比例,输入7转化为7%
 
portion_down_payment = 0.3  # 首付比例,浮点数
down_payment = portion_down_payment * total_cost  # 首付款
print(f'首付 {down_payment:.2f} 元')
 
current_savings = 0  # 存款金额,从0开始
number_of_months = 0
# 补充你的代码,计算月工资,计算月存款
monthly_deposit = annual_salary / 12 *portion_saved
a = monthly_deposit
while True:
    number_of_months = number_of_months + 1
    current_savings += 2.25 * 0.01 * current_savings / 12
    current_savings = current_savings + monthly_deposit
    if number_of_months % 6 == 0:
        monthly_deposit = monthly_deposit * (1 + semi_annual_raise)
    if number_of_months % 12 == 0:
        print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_savings))
    if current_savings >= down_payment:
        break
print(f'需要{number_of_months}个月可以存够首付')
 
# 补充你的代码,计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值