如果一个大学毕业生第一年工资为5万元,以后按照每年10%的幅度增长,每年存款为全年工资的60%,若想存钱买房,请从键盘输入一套房子的价格(单位:万元),编程计算买这套房子需要存多少年?
代码运行效果截屏图片
代码
#!/sur/bin/nve python
# coding: utf-8
def buy_house(money):
''' 存款买房 '''
salary = 5 # 初始工资5w。
k = 0.1 # 工资年涨幅10%。
save = 0.6 # 每年存钱:年工资的60%。
moneys = 0 # 存钱总额初值。
for i in range(money):
moneys += salary*save
if moneys >= money:
return i+1
salary = salary + salary*k
if __name__ == '__main__':
while True:
money = input(f"\n{' (单位:万元) ':~^36}\n{'请输入房价:':>15}").strip()
if money.isdigit():
money = int(money)
break
print(f"\n{'':>6}买下这套房子,您需要存钱{buy_house(money)}年。\n{'':~^41}")
salary = 5 # 第一年工资,单位为万元
increment = 0.1 # 工资增长率
savings_rate = 0.6 # 存款比例
house_price = float(input('请输入房子的价格(万元):'))
savings = 0 # 存款总额
years = 0 # 存款所需的年数
while savings < house_price:
savings += salary * savings_rate
salary *= (1 + increment)
years += 1
print('买这套房子需要存{}'.format(years))
from math import *
x=13.95
n=0
while x<13.95*2:
x=x*(1+0.00381)
n=n+1
print ("用循环求得的年数为:%d 人数为 %f 亿"%(n,x))
m=log(2)/log(1.00381)
if int(m)!=m:
m=int(m)+1
print("用对数求得的年数:%d"%(m))
问题解决方案:
根据题目要求,需要用户输入房子价格(万元),并计算存款时间,下面是具体的解决方案:
python house_price = float(input("请输入房子价格(万元):"))
```python # 第一年的工资为5万元 salary = 5.0 # 每年工资以10%的幅度递增 increase_rate = 0.1 # 存款比例为60% saving_rate = 0.6 # 存款金额初始化为0 saving_amount = 0.0
# 计算存款金额 while saving_amount < house_price: saving_amount += salary * saving_rate salary *= (1 + increase_rate) ```
python # 计算存款时间(年) saving_time = (saving_years - 1) / 12.0 print("买这套房子所需的存款时间为:{:.2f}年".format(saving_time))
完整代码如下:
house_price = float(input("请输入房子价格(万元):"))
# 第一年的工资为5万元
salary = 5.0
# 每年工资以10%的幅度递增
increase_rate = 0.1
# 存款比例为60%
saving_rate = 0.6
# 存款金额初始化为0
saving_amount = 0.0
# 计算存款金额
while saving_amount < house_price:
saving_amount += salary * saving_rate
salary *= (1 + increase_rate)
# 计算存款时间(年)
saving_years = (len(str(int(saving_amount))) - 1) // 4 + 1
saving_time = (saving_years - 1) / 12.0
# 输出存款时间
print("买这套房子所需的存款时间为:{:.2f}年".format(saving_time))
注意:在计算存款年数时,需要将存款金额转换为字符串,并且对其长度进行处理。由于一个整型数可以存储的最大位数为11位(10的11次方减1),因此每4位数字就需要增加1年,而最后一个不到4位的数字也需要加1年。
这是一个比较典型的存款买房问题。假设你想买一套房子,价格为x万元,第一年工资为5万元,以后每年增长10%,每年存款为全年工资的60%。那么我们可以用Python来计算需要存多少年才能买到这套房子。
以下是Python代码:
def calculate_saving_years(x):
annual_salary = 50000
portion_saved = 0.6
current_savings = 0
r = 0.1
down_payment = x * 0.25
months = 0
while current_savings < down_payment:
current_savings += current_savings * r / 12 + annual_salary / 12 * portion_saved
months += 1
if months % 6 == 0:
annual_salary *= 1.1
portion_saved += 0.01
return months / 12
x = float(input("请输入房子的价格(单位:万元):"))
print("需要存", calculate_saving_years(x), "年才能买到这套房子。")
假设你想买一套价值100万元的房子,那么需要存大约16年才能买到这套房子。