|
上一章讲的是顺推法,下面来说说逆推法:
所谓逆推发,顾名思义就是逆着推导。就是从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。
问题:父亲准备为小明(万恶的小明)的4年大学生活一次性在银行储蓄一笔钱,使用整存零取的方式,控制小明每月的月底只能提取1000元准备下月使用。假设银行一年整存零取的利息是1.71%,那么请计算出父亲至少需要一次性存入多少钱才够小明4年大学生活?
分析:如果小明第48个月要取出1000块钱,那么第47个月他的卡里就得有1000/(1+1.71%/12); 第46个月他的卡里就得有(1000/(1+1.71%/12)+1000)/(1+1.71%/12) 即 第47个月的存款+第46个月要取的钱。 以此类推 。。。。 。。。 。。 。 - // 编程算法之递推算法-逆推法.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- const int month = 49;
- float money[month];
- money[48] = 1000;
- for (int i = 47;i>0;--i)
- {
- money[i] = (money[i+1]+1000)/(1+0.0171/12);
- }
- for (int i = 48;i>0;--i)
- {
- printf("%d月,存钱总额是%f\n",i,money[i]);
- }
- return 0;
- }
复制代码http://blog.csdn.net/yaoyuan0701/article/details/45048351
|