欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

递推算法6——逆推法之存取问题

程序员文章站 2024-03-16 11:20:16
...

该存多少钱
小明打算为自己的三年研究生生活准备了一笔学费,一次性的存入银行,保证每年年底取出1000元,到第3年学习结束时刚刚好取完。假设银行一年整存零取得月息为0.31%,请问需存入银行多少钱?


【分析】
这也是已知结果求已知条件的问题,同样采用逆推法。如果第3年年底连本带息取出1000元,则需先求出第3年年初的银行存款:

假设第3年年初的银行存款为x元,则有x×(1+0.0031×12)=1000,故x=1000/(1+0.0031×12),即第3年年初的银行存款=1000/(1+0.0031×12)。同理可以得到第2年年初的银行存款,第1年年初的银行存款,计算如下:
第2年年初的银行存款=(第3年年初的银行存款+1000)/(1+0.0031×12);
第1年年初的银行存款=(第2年年初的银行存款+1000)/(1+0.0031×12);
第1年年初的银行存款即为所求结果。
code:

#include<stdio.h> 
void main()
{
	int i;
	float total = 0.0;
	for (i = 0; i < 3; i++)
		total = (total + 1000) / (1 + 0.0031 * 12);
	printf("第一次必须向银行存入%.2f元\n", total);
	getchar();
}

递推算法6——逆推法之存取问题