不理解这个代码的算法!
不理解这个代码的算法!
题目要求是:
本金1000,利息0.05,假设所有的利息都累计存储,计算并显示10年之内每年的年终总数,使用下面的公式:
a = p(1+r)^n
p代表本金
r代表利率
n代表年数
a代表第n年的年终总数
代码是这样写的:
Module Module1
Sub Main()
Dim principle As Integer = 1000
Dim rate As Double = 0.05
Dim sum As Double
Dim year As Integer = 0
Dim output As String
output = "年数 " & vbTab & "当年本金+利息 " & vbCrLf
For year = 1 To 10
sum = principle * (1 + rate)^ year '对这一行的法,我不明白!
output = output & year & vbTab & sum & vbCrLf
Next
Console.WriteLine(output)
Console.ReadLine()
End Sub
End Module
对于上面我不明白算法的那一行,我认为应该这么写:
sum = principle + principle * (rate^ year)
但是似乎结果不对,可是它写的算法我怎么弄也不明白。
关键就在“假设所有的利息都累计存储”这句话上
期待明白的人给解决
先谢谢各位
[解决办法]
你这么算,是不对的,本金单独出来,没有算利息啊,后面的利息部分也不对.你这样算年数存的越多,总金额反而越少了.
本来的那个公式就是高中政治政治书上计算复利的公式啊,楼主不理解么?看来政治经济学没学好啊,呵呵.
“假设所有的利息都累计存储”的意思就是每一年产生的利息都计入下一年的本金中计算利息.
故:
第一年: 本金 p 利息 r
第二年: 本金 p+r=p(1+r) 利息 (p+r)*r
第三年: 本金 p+r+(p+r)r=p(1+r)^2 利息 p(1+r)^2*r
·
·
·
第n年的本金即是第n-1年的总金额a
故:
第n年的总金为a = p(1+r)^n,题中已经给出了啊,呵呵.
这样说,楼主明白了没?