|

楼主 |
发表于 2016-9-24 23:46:37
|
显示全部楼层
- Private Sub Command3_Click()
- 'On Error GoTo break
- Text2 = vbNullString
- Dim lst(9)
- For i = 0 To 9
- lst(i) = 1
- Next
- txt = Split(Text1, vbCrLf)
- For Each s In txt
- If Len(s) < 8 Then
- GoTo break
- End If
- x = Split(s, " ")
- a = Val(x(1))
- b = Val(x(2))
- Dim n(3)
- For i = 0 To 3
- c = Mid(x(0), i + 1, 1)
- n(i) = Val(c)
- Next
- Select Case a + b
- Case 4
- For i = 0 To 9
- lst(i) = 0
- Next
- For i = 0 To 3
- lst(n(i)) = 1
- Next
- Case 3
- Select Case a
- Case 3
- Case 2
- Case 1
- Case 0
- End Select
- Case 2
- Select Case a
- Case 2
- Case 1
- Case 0
- End Select
- Case 1
- Select Case a
- Case 1
- Case 0
- End Select
- Case 0
- For i = 0 To 3
- lst(n(i)) = 0
- Next
- End Select
- Next
- break:
- out = vbNullString
- x = 0
- Dim lst2(9)
- For i = 0 To 9
- lst2(i) = -1
- If lst(i) = 1 Then
- lst2(x) = i
- x = x + 1
- End If
- Next
- z = x - 1
- x = 0
- For a = 0 To z
- For b = 0 To z
- For c = 0 To z
- For d = 0 To z
- If a <> b And a <> c And a <> d And _
- b <> c And b <> d And _
- c <> d Then
- out = out & lst2(a) & lst2(b) & lst2(c) & lst2(d) & vbCrLf
- x = x + 1
- End If
- Next
- Next
- Next
- Next
- Label1 = x & "个结果"
- Text2 = out
- End Sub
复制代码 现在我能想到的解算方式是这样的,A+B个数分类,然后拆分AB个数
思路是5楼启发我的 |
|