读书人

请问一个循环程序

发布时间: 2012-01-29 21:39:32 作者: rapoo

请教一个循环程序
A B C D 四个的 各种组合
A B C D AB AC AD BC BD CD ABC ABD ACD BCD ABCD 加上一个都不选 总共16种选择 怎样用一个判断语句 或者循环语句 描述


[解决办法]
用一个2进制数 0000 - 1111 就可以描述这个
[解决办法]

已经测试过.

Dim AA() As String = { "A ", "B ", "C ", "D ", " "}
Dim str As String
Try
For I As Int16 = 0 To AA.Length - 1
For j As Int16 = I To AA.Length - 1
For k As Int16 = j To AA.Length - 1
For l As Int16 = k To AA.Length - 1

If Len(Trim(AA(I) + AA(j) + AA(k) + AA(l))) - Len(Trim(Microsoft.VisualBasic.Replace(Trim(AA(I) + AA(j) + AA(k) + AA(l)), "A ", " "))) <= 1 And Len(Trim(AA(I) + AA(j) + AA(k) + AA(l))) - Len(Trim(Microsoft.VisualBasic.Replace(Trim(AA(I) + AA(j) + AA(k) + AA(l)), "B ", " "))) <= 1 And Len(Trim(AA(I) + AA(j) + AA(k) + AA(l))) - Len(Trim(Microsoft.VisualBasic.Replace(Trim(AA(I) + AA(j) + AA(k) + AA(l)), "C ", " "))) <= 1 And Len(Trim(AA(I) + AA(j) + AA(k) + AA(l))) - Len(Trim(Microsoft.VisualBasic.Replace(Trim(AA(I) + AA(j) + AA(k) + AA(l)), "D ", " "))) <= 1 Then
str = str + Trim(AA(I) + AA(j) + AA(k) + AA(l)) + ", "
End If
Next
Next
Next
Next
MsgBox(str)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
[解决办法]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim array1() As String = { " ", "A "}
Dim array2() As String = { " ", "B "}
Dim array3() As String = { " ", "C "}
Dim array4() As String = { " ", "D "}
Dim str As String
Try
For i As Integer = 0 To 1
For j As Integer = 0 To 1
For k As Integer = 0 To 1
For l As Integer = 0 To 1
str = array1(i) + array2(j) + array3(k) + array4(l)
ListBox1.Items.Add(str)
ListBox1.Sorted = True
Next
Next
Next
Next
Catch ex As Exception

End Try
End Sub

我认为这种穷举法比楼上的更容易理解(测试通过)

读书人网 >VB Dotnet

热点推荐