C语言练习:该存多少钱

1.问题描述

  假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中每年的年底取出1000元,到第五年时刚好取完,请算出他存钱时应该存入多少?

*问题分析和算法设计

分析存钱和取钱的过程,可以采用倒推的方法。

若第五年年底连本带利要取1000元,则要先求出第五年初银行存款的钱数:

              1000(第五年年底的本息)= 第五年年初存款*(1+12*0.0063);

              第五年年初存款 = 1000/(1 + 12*0.0063);

以此类推可以求出第四年、第三年......的年初银行存款的钱数:

            第四年年初存款 *(1+12*0.0063)= 第五年年初存款+1000;

            第四年年初存款 = (第五年年初存款+1000)/(1+12*0.0063);

            第三年年初存款 = (第四年年初存款+1000)/(1+12*0.0063);

            第二年年初存款 = (第三年年初存款+1000)/(1+12*0.0063);

            第一年年初存款 = (第二年年初存款+1000)/(1+12*0.0063);

                                     =  ((第三年年初存款+1000)/(1+12*0.0063)+1000)/(1+12*0.0063);

                                     = ((((第四年年初存款+1000)/(1+12*0.0063))+1000)/(1+12*0.0063)+1000)/(1+12*0.0063);

                                    = ((((((第五年年初存款+1000)/(1+12*0.0063))+1000)/(1+12*0.0063))+1000)/(1+12*0.0063)+1000)/(1+12*0.0063);

                                   = (((((((1000/(1 + 12*0.0063))+1000)/(1+12*0.0063))+1000)/(1+12*0.0063))+1000)/(1+12*0.0063)+1000)/(1+12*0.0063);

 

代码如下:

/*******************************************************************
 *   > File Name: 03-savaMoney.c
 *   > Author: fly
 *   > Mail: [email protected]
 *   > Create Time: 2019年03月21日 星期四 12时59分53秒
 ******************************************************************/

#include 

int main(int argc, char* argv[])
{
    int i;
    float total = 0.0;

    for(i = 0; i<5; i++)
    {
        total = (1000.0 + total)/(1+0.0063*12);
    }
    printf("total = %.2f\n", total);

    return 0;
}

执行运算结果:total = 4039.44

你可能感兴趣的:(1.C/C++编程)