我现在正在研究36选7计算某一合值时,其余7个数出现的情况。
即要求:1、输入某一合值(a)时,从1-36即36个数中任取7个数(x1,x2,x3,x4,x5,x6,x7),这7个数相加为刚才输入的合值,即x1+x2+x3+x4+x5+x6+x7=a;
2、7个数各不相同(范围均从36个数中选出);
3、可以全选显示的结果并复制粘贴。
虽然我以前学过VB,但由于有一段时间没有用,所以很多东西已经忘记了,只会用一些比较低级的方法编程,故编出来的程序有死循环问题,请高手帮忙解决,谢谢!(如果可以达到相同效果可用其它循环)
控件:1个text1,36个text2(组),1个command,1个listbox。
我自己编的程序如下:请指教
Dim a As Integer
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
Dim i7 As Integer
Dim x1(0 To 40) As Integer
Dim x2(0 To 40) As Integer
Dim x3(0 To 40) As Integer
Dim x4(0 To 40) As Integer
Dim x5(0 To 40) As Integer
Dim x6(0 To 40) As Integer
Dim x7(0 To 40) As IntegerPrivate Sub Command1_Click()
a = Val(Text1.Text)
For i1 = 0 To 35
    For i2 = 0 To i1 - 1
        For i3 = 0 To i2 - 1
            For i4 = 0 To i3 - 1
                For i5 = 0 To i4 - 1
                    For i6 = 0 To i5 - 1
                        For i7 = 0 To i6 - 1
    x1(i1) = Val(Text2(i1).Text)
    x2(i2) = Val(Text2(i2).Text)
    x3(i3) = Val(Text2(i3).Text)
    x4(i4) = Val(Text2(i4).Text)
    x5(i5) = Val(Text2(i5).Text)
    x6(i6) = Val(Text2(i6).Text)
    x7(i7) = Val(Text2(i7).Text)
        If x1(i1) + x2(i2) + x3(i3) + x4(i4) + x5(i5) + x6(i6) + x7(i7) = a Then
            b1 = Str(x1(i1))
            b2 = Str(x2(i2))
            b3 = Str(x3(i3))
            b4 = Str(x4(i4))
            b5 = Str(x5(i5))
            b6 = Str(x6(i6))
            b7 = Str(x7(i7))
            List1.AddItem b1 + b2 + b3 + b4 + b5 + b6 + b7
        End If
        Exit For
                        Next i7
                    Next i6
                Next i5
            Next i4
        Next i3
    Next i2
Next i1