只能说可以实现。(写过,但是现在不能给你提供完整的代码)
给你思路。。。
当时有个全排列的求助,就尝试写过了。
朋友给了我一份,我自己写了种2个循环代替多个循环的嵌套。
写出来自己当时超高兴。。。可惜太早了,现在用的这个是
别人的电脑。自己的电脑废了,找不到了。
Private Sub Command1_Click
()
Dim i
As Integer
Dim j
As Integer
Dim k
As Integer
For i
= 1
To 3
For j
= 1
To 3
For k
= 1
To 3
Print i
& j
& k
Next
Next
Next
End Sub
Private Sub Command2_Click
()
Dim i
As Integer
Dim j
As Integer
Dim k
As Integer
Dim m
As Integer
Dim ij
(9
) As Integer
For i
= 1
To 3
For j
= 1
To 3
ij
((i
- 1
) * 3
+ j
) = i
& j
Next
Next
For k
= 1
To 3
For m
= 1
To 3
* 3
Print k
& ij
(m
)
Next
Next
End Sub
'现在表述不清楚了。
'大概意思就是3个循环的话,
'先前2个循环产生ij的结果。
'再将ij结果和第3层循环,得到全排列结果。
'如果你4个FOR嵌套输出全部的状态
'将上面第2部分的 k & ij(m) 变成赋值
' ijk(3*3*3)= ij(m) & k
'然后和第4层做个2重循环。
'For k = 1 To 3
' For m = 1 To 3 * 3 * 3 '只有这里变化了。
' Print k & ijk(m)
' Next
'Next
'有点像乘法3个数相乘2个先乘在乘另一个。
'先前2个循环得到结果,这个结果和下一个循环
'进行2重循环,得到前3重循环的结果
'再和第4层进行2重循环。。。
'前n层的结果在和n+1层进行循环……
'就是将n重嵌套循环变成一层层循环进去。。。
'这样就可以写成sub调用,改变的是那个3*3*3的那个部分。。
'具体自己研究下吧,现在已经变的好懒了不想再写边了。
'我朋友给我的是另一种代码,哎~都没有了。
'那个方法的思路我都还没有理清。。。