假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。 一年后,你的账户余额为: 1000 * ( 1 + 0.047) = 1047 元 第二年初你又存入1000元,则两年后账户余额为: (

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DucklikeJAVA/article/details/62482863
  • 假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。
    一年后,你的账户余额为:
    1000 * ( 1 + 0.047) = 1047 元
    第二年初你又存入1000元,则两年后账户余额为:
    (1047 + 1000) * ( 1 + 0.047) = 2143.209 元
    以此类推,第10年年末,你的账户上有多少余额?
    注:结果保留2位小数(四舍五入)。

这一题我又是想了很久才找到解决方案,差不多半小时才解决:

# -*- coding: UTF-8 -*-
"""
Created on 2017/3/16
@author: cat
假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。
一年后,你的账户余额为:
1000 * ( 1 + 0.047) = 1047 元
第二年初你又存入1000元,则两年后账户余额为:
(1047 + 1000) * ( 1 + 0.047) = 2143.209 元
以此类推,第10年年末,你的账户上有多少余额?
注:结果保留2位小数(四舍五入)。

f(1) =1000*(1+u)
f(2) =(f(1)+1000) *(1+u)
...
f(n) =( f(n-1)+1000) * (1+u)

"""

def compute(base, update, years):
    c_money = 0  # 当年余额
    c_year = 0  # 当前是第几年
    while c_year < years:
        c_year += 1
        c_money = (c_money + base) * (1 + update)
    return (round(c_money, 2), c_year)


base = 1000
update = 0.047

print "total money and years are ", compute(base, update, 1)
print "total money and years are ", compute(base, update, 2)
print "total money and years are ", compute(base, update, 10)

print

total money and years are  (1047.0, 1)
total money and years are  (2143.21, 2)
total money and years are  (12986.11, 10)

后来一想,还有更简便的方式:

def compu(base, update, years):
    c_money = 0
    while years > 0:
        c_money = (c_money + base) * (1 + update)
        years -= 1
    return round(c_money,2)

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭