黑马程序员技术交流社区

标题: 求解一道银行存款相关的题 [打印本页]

作者: mybdgw    时间: 2014-7-12 23:34
标题: 求解一道银行存款相关的题
本帖最后由 mybdgw 于 2014-7-13 22:39 编辑

题目如下
假设银行当前整存领取五年期的年利息为2.5%,现在某人手里有一笔钱,预计在今后的五年当中每年年底取出1000,到第五年的时候刚好取完,计算在最开始存钱的时候要存多少钱?
int main(int argc, const char * argv[])
{
    //    总金
    float total = 0;
    for (int i = 0; i < 5; i++) {
        //        倒推第5年年初存款,用1000/
        total = (total + 1000)/(1 + 0.025);
    }
    //    输出结果
    printf("total = %.3f\n", total);
    return 0;
}
对于下面这部分还是好难理解,能否给出你们的理解方式啊
    for (int i = 0; i < 5; i++) {
        //        倒推第5年年初存款,用1000/
        total = (total + 1000)/(1 + 0.025);
    }
作者: 496080891    时间: 2014-7-13 08:08
第5年年底刚好取1000没有了,所以第5年初存的钱1000/1.025
循环5次就刚好是刚开始存入的钱。
作者: 温天恩    时间: 2014-7-13 08:54
total = (total + 1000)/(1 + 0.025);这个表达式等价于:当年本金=(上一年结余+本年取款金额)/(1+利率)
解释:假设当前计算的是第五年,那么表达式可以写为:
第五年本金=(第四年结余/0+第五年取款金额/1000)/(1+利率)
依次类推,得出的存款金额。
作者: fantacyleo    时间: 2014-7-13 10:19
这就是个等额年金求现值的问题,方程是:

P是最初存入的钱数,A是每年取出的钱数,n是年数,i是利率。这样,题目就变成了数列求前n项和的问题

作者: Devchen    时间: 2014-7-13 17:26
那里的题?
作者: mybdgw    时间: 2014-7-13 22:36
496080891 发表于 2014-7-13 08:08
第5年年底刚好取1000没有了,所以第5年初存的钱1000/1.025
循环5次就刚好是刚开始存入的钱。 ...

这位哥们儿说得很好理解。。谢了:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2