首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

请问一个循环程序

2012-01-29 
请教一个循环程序ABCD四个的各种组合ABCDABACADBCBDCDABCABDACDBCDABCD加上一个都不选总共16种选择怎样用

请教一个循环程序
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

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

热点排行