A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

mybdgw

初级黑马

  • 黑马币:32

  • 帖子:21

  • 精华:0

© mybdgw 初级黑马   /  2014-7-12 23:34  /  1145 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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);
    }

5 个回复

倒序浏览
第5年年底刚好取1000没有了,所以第5年初存的钱1000/1.025
循环5次就刚好是刚开始存入的钱。
回复 使用道具 举报
total = (total + 1000)/(1 + 0.025);这个表达式等价于:当年本金=(上一年结余+本年取款金额)/(1+利率)
解释:假设当前计算的是第五年,那么表达式可以写为:
第五年本金=(第四年结余/0+第五年取款金额/1000)/(1+利率)
依次类推,得出的存款金额。
回复 使用道具 举报
这就是个等额年金求现值的问题,方程是:

P是最初存入的钱数,A是每年取出的钱数,n是年数,i是利率。这样,题目就变成了数列求前n项和的问题
回复 使用道具 举报
那里的题?
回复 使用道具 举报
496080891 发表于 2014-7-13 08:08
第5年年底刚好取1000没有了,所以第5年初存的钱1000/1.025
循环5次就刚好是刚开始存入的钱。 ...

这位哥们儿说得很好理解。。谢了:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马