读书人

不理解这个代码的算法

发布时间: 2011-12-22 23:36:25 作者: rapoo

不理解这个代码的算法!
不理解这个代码的算法!


题目要求是:
本金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,题中已经给出了啊,呵呵.
这样说,楼主明白了没?

读书人网 >VB Dotnet

热点推荐