C语言最佳存款方案
问题描述
假设银行一年整存零取的月息为 0.63%。现在某人手中有一笔钱,他打算在今后的 5 年中的每年年底取出 1000 元,到第 5 年时刚好取完,请算出他存钱时应存入多少。问题分析
可以从第 5 年向前推算。已知“在今后的5年中每年的年底取出1000元,这样到第5年的时候刚好可以取完”,因此,第5年年底会取出1000元,则可以计算出第5年年初在银行中所存的钱数为
,据此推算出第4年、第3年直至第1年年初的银行存款数。将推导过程用表格表示出来,如下表所示。| 年初存款 | 公式 | 
|---|---|
| 第五年年初存款 | 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) | 
算法设计
根据上述分析,从第5年年初开始向前递推就可求出这个人应该在银行中存钱的钱数。 因此可以使用 for 循环语句,循环4次,每次循环都在上一次的基础上加上1000,再除以
。下面是完整的代码:
#include<stdio.h>
int main()
{
    int i;
    double money=0.0;
    for(i=0; i<5; i++)
        money=(money+1000.0)/(1+0.0063*12);
    printf("应存入的钱数为:%0.2f\n", money);  /*结果保留两位小数*/
    return 0;
}
运行结果:应存入的钱数为:4039.44
