首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

小菜菜学vb系列,该如何处理

2012-01-07 
小菜菜学vb系列春节放假,闲着没事,静下心来,看看vb,做了几个练习题,感觉还可以,请大家看看写怎么样?练习1:

小菜菜学vb系列
春节放假,闲着没事,静下心来,看看vb,做了几个练习题,感觉还可以,请大家看看写怎么样?
练习1:编写一个程序,使用函数方式求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值
源代码如下:
Function   sum(n   As   Integer)
Dim   a,   j,   c   As   Integer
c   =   0
a   =   0:   j   =   1
For   i   =   1   To   n
a   =   a   +   j
c   =   a   +   c
j   =   j   +   1
Next
sum   =   c
End   Function
Private   Sub   Command1_Click()
Dim   x   As   Integer
Dim   y   As   String
y   =   Text1.Text
x   =   Val(Right(y,   2))
x   =   sum(x)
Text2.Text   =   x
End   Sub
希望大家提提意见,向同志们学习一下


[解决办法]
没有简化,光是实现了:


Function Sum(m As Integer) As Long
Dim i As Integer
For i = m To 1 Step -1
Sum = Sum + doSum(i)
Next i
End Function

Function doSum(n As Integer) As Long
Dim i As Integer
For i = n To 1 Step -1
doSum = doSum + i
Next
End Function

Private Sub Command1_Click()
Dim x As Integer
x = Val(Right(Text1.Text, 2))

Text2.Text = Sum(x)
End Sub




[解决办法]
1+2+3...N=(1+N)*N/2

---> Σ (1+k)*k/2
k=1 to n
=(1+1)*1/2+(1+2)*2/2... +(1+n)*n/2
=(1+n)*n/4+(2*n+1)*(n+1)*n/12
=(n+2)*(n+1)*n/6
化简完毕
所以
Function Sum(m As Integer) As Long
Sum=m*(m+1)*(m+2)/6
End Function

热点排行