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