题目:假设银行一年整存零取的月息为1.875%,现在某人手头有一笔钱,他打算在今后5年
中,每年年底取出1000元作为孩子来年的教育金,到第5年孩子毕业时刚好取完这笔钱,请编
程计算第1年年初时他应存入银行多少钱。
解析:采用逆推法分析存钱和取钱的过程,然后采用迭代法求解。若第5年年底连本带
息要取出1000元,则第5年年初银行中的存款数额y,应为
y5=1000/(1+12×0.01875)
按题意,由第5年年初银行中的存款数额y5,求得第4年年初银行中的存款数额y4:应为
y4=(y5+1000)/(1+12×0.01875)
同理,由第n+1年年初银行中的存款数额y+1求得第n年年初银行中的存款数额y。为
yn=(yn+1?+1000)/(1+12×0.01875)
逻辑:以0作为y+1的初值,对上式进行逆推迭代求解,for循环5次的结果即为第1年年初银行中的
存款数额y,也就是他现在要存入银行的存款数额。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define year 5
#define rate 0.01875
#define capital 1000
int main()
{
int i = 0;
double res = 0;
for (i = 0; i < year; i++)
{
res = (res + capital) / (1 + 12 * rate);
}
printf("%.2f\n", res);
return 0;
}