Private Sub Command1_Click() Dim Temp() As String, S1 As String, S2 As String Dim I As Integer, J As Integer, K As Integer, L As Integer Temp = Split("1|2|3|4|5|6|7|8|9", "|") List1.Clear L = UBound(Temp) For I = 0 To L S1 = Temp(I) & " " & Temp(I) & " " & Temp(I) For J = 0 To L For K = 0 To L S2 = Temp(I) & " " & Temp(J) & " " & Temp(K) If S1 <> S2 Then List1.AddItem S2 Next K Next J Next I End Sub
function recall(level) dim i as long if level>N then 输出结果 exit function end iffor i=1 to 数组最高位 result(level)=数组(i) 'RESULT数组存放结果 recall(level+1) next end function
Dim Temp() As String, S1 As String, S2 As String
Dim I As Integer, J As Integer, K As Integer, L As Integer
Temp = Split("1|2|3|4|5|6|7|8|9", "|")
List1.Clear
L = UBound(Temp)
For I = 0 To L
S1 = Temp(I) & " " & Temp(I) & " " & Temp(I)
For J = 0 To L
For K = 0 To L
S2 = Temp(I) & " " & Temp(J) & " " & Temp(K)
If S1 <> S2 Then List1.AddItem S2
Next K
Next J
Next I
End Sub
如何生成3个数的全部数列,数列不包括相同的3个数如000
如果数目是可变的,那么递归N层就可以了。
dim i as long
if level>N then
输出结果
exit function
end iffor i=1 to 数组最高位
result(level)=数组(i) 'RESULT数组存放结果
recall(level+1)
next
end function