或: sum=1 for i=2 to 10 count=1 '上面一贴写错了 for j=2 to i count=count*j next sum=sum+count 'sum是最终结果 next算法一样,可以少做点循环
求阶层的方法在数据结构中是使用“递归”:Private Sub Form_Load() Dim str As String, i, Sum
str = InputBox("请输入阶层层数:", "提示", "10")
If Val(str) < 0 Then MsgBox "错误!" Else For i = 1 To Val(str) Sum = Sum + GetSumOfOrder(i) Next MsgBox Sum End If End SubPublic Function GetSumOfOrder(ByVal Num As Integer) As Long If Num > 1 Then GetSumOfOrder = Num * GetSumOfOrder(Num - 1) Else GetSumOfOrder = 1 End If End Function
Dim n As Integer Dim i as Integer Dim value As Integer n = 1 value = 0 For i = 1 To 5 n = n * i value = value + n Next
twinking() ,你能提供一个更加小巧的程序实现方法吗?
Private Sub Command1_Click() MsgBox sums(10) End Sub Function sums(ByVal n As Integer) As Long Dim i As Long, j As Long, temp As Long sums = 0 i = 1 For i = 1 To n temp = 1 For j = 1 To i temp = temp * j Next sums = sums + temp Next End Function
奇怪,最近复制总出错。 Private Sub Command1_Click() MsgBox sums(10) End Sub Function sums(ByVal n As Integer) As Long sums = 0 Dim I As Long, J As Long, TEMP As Long For I = 1 To n TEMP = 1 For J = 1 To I TEMP = TEMP * J Next sums = sums + TEMP Next End Function
sum=1
for i=2 to 10
count=1 '上面一贴写错了
for j=2 to i
count=count*j
next
sum=sum+count 'sum是最终结果
next算法一样,可以少做点循环
Dim str As String, i, Sum
str = InputBox("请输入阶层层数:", "提示", "10")
If Val(str) < 0 Then
MsgBox "错误!"
Else
For i = 1 To Val(str)
Sum = Sum + GetSumOfOrder(i)
Next
MsgBox Sum
End If
End SubPublic Function GetSumOfOrder(ByVal Num As Integer) As Long
If Num > 1 Then
GetSumOfOrder = Num * GetSumOfOrder(Num - 1)
Else
GetSumOfOrder = 1
End If
End Function
wxy_xiaoyu(☆然也☆╭∩╮(︶︿︶)╭∩╮) 的程序通过!OK!
只是还有没有比这个更加简单的实现方法!!!等待!!
Dim i as Integer
Dim value As Integer
n = 1
value = 0
For i = 1 To 5
n = n * i
value = value + n
Next
MsgBox sums(10)
End Sub
Function sums(ByVal n As Integer) As Long
Dim i As Long, j As Long, temp As Long
sums = 0
i = 1
For i = 1 To n
temp = 1
For j = 1 To i
temp = temp * j
Next
sums = sums + temp
Next
End Function
Private Sub Command1_Click()
MsgBox sums(10)
End Sub
Function sums(ByVal n As Integer) As Long
sums = 0
Dim I As Long, J As Long, TEMP As Long
For I = 1 To n
TEMP = 1
For J = 1 To I
TEMP = TEMP * J
Next
sums = sums + TEMP
Next
End Function