2012年8月23日 星期四

第2題.排列組合

在輸入檔in2.txt中,只有1行不複的英文字串,長度最小1,最長為10。
請將此英文字串的所有排列組合輸出到out2.txt中,不計順序,並在所有組合數,輸出在最後1行。
輸入範例:in2.txt
xyz
輸出範例:out2.txt
xyz
xzy
yzx
yxz
zxy
zyx
6

1 則留言:

  1. 這幾天把遞迴練得比較熟悉了。
    Dim a(10), x As String
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    List1.Clear
    Line Input #1, x
    For i = 1 To 10
    a(i) = Mid(x, i, 1)
    Next
    Call abc("")
    For i = 0 To (List1.ListCount - 1)
    Print #2, List1.List(i)
    Next
    Print #2, i
    Loop
    Close
    Close
    End
    End Sub
    Sub abc(t)
    If Len(t) = Len(x) Then
    List1.AddItem t
    Else
    For i = 1 To Len(x)
    If InStr(t, a(i)) = 0 Then Call abc(t & a(i))
    Next
    End If
    End Sub

    回覆刪除