# 求四个不同数字所有排列可能的print方法。。

billylk 2004-05-01 08:12:18

...全文
95 2 点赞 打赏 收藏 举报

2 条回复

liwowo 2004-06-08

Private Sub Command1_Click() ' 列出数组a 的全排列
Dim a(8) As String, temp As String
For i = 0 To 8
a(i) = i
Next
temp = permutation(a, UBound(a))
Debug.Print temp
Debug.Print "共有 " & UBound(Split(temp, vbCrLf)) + 1 & " 种排法！"
End Sub
Function addxtostr(ByVal x0 As String, ByVal xadd As String) As String ' eg: x0:

"1,2,3,4",we will add 5 to x0
Dim temp, temp2, all() As String, i As Long
temp = Split(x0, ",")
ReDim all(UBound(temp) + 1)
all(0) = xadd & "," & x0 ' return "5,1,2,3,4"
For i = 1 To UBound(all)
temp2 = temp
temp2(i - 1) = temp2(i - 1) & "," & xadd ' add 5 between every two contunious number
all(i) = Join(temp2, ",")
Next
Set temp = Nothing
Set temp2 = Nothing
Erase all
End Function
Function permutation(ByRef a() As String, ByVal n As Long) As String '列出数组a 的前n-1

Dim i As Long, temp, all() As String
If n = 0 Then permutation = a(0)
If n = 1 Then permutation = a(0) & "," & a(1) & vbCrLf & a(1) & "," & a(0)
If n > 1 Then
temp = Split(permutation(a, n ), vbCrLf) ' 递归
ReDim all(UBound(temp))
For i = 0 To UBound(temp)
Next
permutation = Join(all, vbCrLf)
End If
Erase all
End Function
• 打赏
• 举报

northwolves 2004-05-02
http://expert.csdn.net/Expert/topic/2909/2909080.xml?temp=.2501337
• 打赏
• 举报

724

VB 版八卦、闲侃，联络感情地盘，禁广告帖、作业帖

2004-05-01 08:12