有点奇怪楼主的“所有数的和”怎么没有 1+3+5这种情况…… 这段代码跟楼主的结果是一致的,参考一下吧: Option ExplicitPrivate Sub ListAll(arrSour() As Long) Dim i&, j&, k&, m&, n& Dim strOut$, S&, t&
m = UBound(arrSour) For i = 1 To m For j = 0 To m - i n = j + 1 Do S = arrSour(j) strOut = S For k = 0 To i - 1 t = arrSour(n + k) S = S + t strOut = strOut & "+" & t Next Debug.Print strOut & "=" & S If ((n + k) > m) Then Exit Do n = n + 1 Loop Next NextEnd SubPrivate Sub Command1_Click() Dim arrTest(3) As Long Dim i& For i = 1 To 4 arrTest(i - 1) = Mid$("1345", i, 1) Next Call ListAll(arrTest) End Sub
这段代码跟楼主的结果是一致的,参考一下吧:
Option ExplicitPrivate Sub ListAll(arrSour() As Long)
Dim i&, j&, k&, m&, n&
Dim strOut$, S&, t&
m = UBound(arrSour)
For i = 1 To m
For j = 0 To m - i
n = j + 1
Do
S = arrSour(j)
strOut = S
For k = 0 To i - 1
t = arrSour(n + k)
S = S + t
strOut = strOut & "+" & t
Next
Debug.Print strOut & "=" & S
If ((n + k) > m) Then Exit Do
n = n + 1
Loop
Next
NextEnd SubPrivate Sub Command1_Click()
Dim arrTest(3) As Long
Dim i&
For i = 1 To 4
arrTest(i - 1) = Mid$("1345", i, 1)
Next
Call ListAll(arrTest)
End Sub