VB 从33个数中选出能满足条件的6个数的所有组合

[复制链接]
查看11 | 回复2 | 2010-3-10 11:50:04 | 显示全部楼层 |阅读模式
只能满足条件一的前十个结果Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim result As String = ""
Dim count As Integer = 0
For i As Integer = 1 To 33
For j As Integer = 1 To 33
For k As Integer = 1 To 33
For l As Integer = 1 To 33
For m As Integer = 1 To 33
For n As Integer = 1 To 33
If i + j + k + l + m + n = 100 Then
If count = 10 Then GoTo mark
count += 1
result += i & "+" & j & "+" & k & "+" & l & "+" & m & "+" & n & "=100" & vbCrLf
End If
Next
Next
Next
Next
Next
Nextmark:
TextBox1.Text = result
End SubEnd Class
回复

使用道具 举报

千问 | 2010-3-10 11:50:04 | 显示全部楼层
1
回复

使用道具 举报

千问 | 2010-3-10 11:50:04 | 显示全部楼层
安置控件:先在窗口中放三个命令按钮,名称用默认的command1-3;再放一个标签框,名称也用默认的label1。再在标签框后面放一个文本框,名称也用默认的text1。所有控件要调整好它们的大小和位置,程序不再对它们的大小和位置进行调整。其它属性由程序设定。程序如下:Const N = 33, X = 6Dim H(X) As Integer, M(X) As IntegerDim Y As IntegerDim I As Integer, J As Integer, Hj As IntegerPrivate Sub Command1_Click()
Y = Int(Val(InputBox("请输入和的大小", "输入", 100)))
Command2.Enabled = True
Command1.Enabled = False
Label1.Caption = "请按按钮查找全部组合......"End SubPrivate Sub Command2_Click()
Label1.Caption = "正在查找,已经查到的组合数量:"
Command2.Enabled = False
Text1.Visible = True
For I = 0 To X
M(I) = I: H(I) = 0
Next
Hj = 0
I = 1
Call ZuHe
Label1.Caption = "查找完毕,共查到的组合数量为:"
Command1.Caption = "重新输入"
Command1.Enabled = TrueEnd SubPrivate Sub Command3_Click()
EndEnd SubPrivate Sub Form_Load()
Text1 = ""
Text1.Visible = False
Label1.Caption = "请先按按钮输入所求的和......"
Command1.Caption = "输入"
Command2.Caption = "开始"
Command3.Caption = "退出"
Command2.Enabled = FalseEnd SubSub ZuHe()
Do While M(I) 按钮查找全部组合......"End SubPrivate Sub Command2_Click()
Label1.Caption = "正在查找,已经查到的组合数量:"
Command2.Enabled = False
Text1.Visible = True
Hj = 0
For M1 = 1 To 28
For M2 = M1 + 1 To 29
For M3 = M2 + 1 To 30
For M4 = M3 + 1 To 31
For M5 = M4 + 1 To 32
For M6 = M5 + 1 To 33
H = M1 + M2 + M3 + M4 + M5 + M6
If H = Y Then
Hj = Hj + 1
Text1 = Hj
Debug.Print Hj; M1; M2; M3; M4; M5; M6
DoEvents
End If
Next
Next
Next
Next
Next
Next
Label1.Caption = "查找完毕,共查到的组合数量为:"
Command1.Caption = "重新输入"
Command1.Enabled = TrueEnd SubPrivate Sub Command3_Click()
EndEnd SubPrivate Sub Form_Load()
Text1 = ""
Text1.Visible = False
Label1.Caption = "请先按按钮输入所求的和......"
Command1.Caption = "输入"
Command2.Caption = "开始"
Command3.Caption = "退出"
Command2.Enabled = FalseEnd Sub已经运行过。作用和结果跟前一段程序完全相同。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行