读书人

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

发布时间: 2012-01-07 21:41:55 作者: rapoo

小菜菜学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

读书人网 >VB

热点推荐