等额本金-逆推
2016-04-13 00:00
260 查看
等额本金是递归逆推的一个方法:
父亲准备4年的生活费,使且整存零取的方式,控制每月底只能提取1000元,假设银行年利息为1.71%
思路:
第48个月取出1000,则要先求出47个月时银行存款的具体金额:
第47个月的存款=1000/(1+1.71%/12)
第47个月的存款=(第47个月的存款+1000)/(1+1.71%/12)
........
第1个月的存款=(第2个月的存款+1000)/(1+1.71%/12)
pseudocode:
corpus(0)
if term=48 then
corpus(48)=1000
elseifcorpus(n)=(corpus(n+1)+1000)/(1+%)
endif
父亲准备4年的生活费,使且整存零取的方式,控制每月底只能提取1000元,假设银行年利息为1.71%
思路:
第48个月取出1000,则要先求出47个月时银行存款的具体金额:
第47个月的存款=1000/(1+1.71%/12)
第47个月的存款=(第47个月的存款+1000)/(1+1.71%/12)
........
第1个月的存款=(第2个月的存款+1000)/(1+1.71%/12)
pseudocode:
corpus(0)
if term=48 then
corpus(48)=1000
elseifcorpus(n)=(corpus(n+1)+1000)/(1+%)
endif
'//程序用以计算等额本息方式 Public Out() Public EA#, Term#, Rate# Sub Corpus() Dim FirstCorpus# '每期金额,利率,期数 Dim i& '变量 With Sheet3 EA = .Cells(1, 2): Rate = .Cells(2, 2): Term = .Cells(3, 2) ReDim Out(0 To Term, 1 To 2) FirstCorpus = CorpusMain(0) '求0值 'Output .Cells(4, 2) = FirstCorpus 'answer .Cells(7, 1).Resize(UBound(Out) + 1, UBound(Out, 2)) = Out 'process End With End Sub '//递归逆推主程序 Function CorpusMain(n) If n = Term Then CorpusMain = EA Else CorpusMain = (CorpusMain(n + 1) + EA) / (1 + Rate / 12) End If Out(n, 1) = n: Out(n, 2) = CorpusMain End Function
相关文章推荐
- Josephus环
- 十进制转为二进制
- 二分法猜价格
- 全排列(序)
- 用R做一个产品MI分析表
- Java——面向对象(二)
- checkstyle代码扫描
- 1、UML概述
- 2、面向对象的分析与设计方法
- 加入购物车动画效果
- Hibernate 注解
- Mac安装cocoapods教程(2016版)
- Mac下cocoapods使用说明(2016版)
- windowIsTranslucent 和windowAnimationStyle冲突
- iOS为汉字添加各种字体
- ZBrush中的材料如何进行渲染和着色
- SparkSQL 通过jdbc连接Mysql(68)
- SparkSQL与Hive的集成实践(69)
- C++产生随机数
- 如何用MathType快速输入公式