|
|
#3
风吹过b2015-10-21 09:22
Option Explicit
Dim a() As Long '所有的数据,二维数组
Dim n As Long '第一维
Dim m() As Long '第二维每行个数
Private Sub Command1_Click()
n = 3
ReDim m(n)
Dim maxm As Long
Dim i As Long, j As Long
Randomize
For i = 1 To n
m(i) = Rnd() * 6 + 1
If maxm < m(i) Then maxm = m(i) '最大个数,确定数组第二维
Next i
ReDim a(n, maxm)
For i = 1 To n
For j = 1 To m(i)
a(i, j) = j
Next j
Next i
Call DG("", 1, n, a(), m(1))
End Sub
Public Sub DG(前缀 As String, 层数 As Long, 总层数 As Long, 数据() As Long, 数据个数 As Long)
Dim i As Long
Dim s As String
If 层数 = 总层数 Then
For i = 1 To 数据个数
s = 前缀 & 数据(层数, i)
Debug.Print s
Next i
Else
For i = 1 To 数据个数
s = 前缀 & 数据(层数, i)
Call DG(s, 层数 + 1, 总层数, a(), m(层数 + 1))
Next i
End If
End Sub
--------------------------
有点属于递归。不知道数据再大一点会不会爆内存。
|