按设定的数据位数:(2,3,4,5,6),随即生成20个互不相等的正数,按5个1行输出到文本框中,并且从中寻找所有的降序数,输出到列表框,降序数就是指高位数字都大于其低位数字,例如973这个是一个朋友让我做的,我现在很忙,没空了,求大家帮忙啊!

解决方案 »

  1.   

    拖一个text1拖大点, 一个list1, 一个command1
    text1的属性要能换行。
    Private Sub Command1_Click()
        Dim bits As Long
        Randomize Timer
        bits = Val(InputBox("请输入一个数", "输入啊", 4))
        If bits = 0 Then Exit Sub
        Dim nums() As Long
        ReDim nums(20 - 1) As Long
        Dim i As Long, j As Long
        i = 0
        Do Until i = 20
            nums(i) = 10 ^ (bits - 1) + Int(Rnd(1) * (10 ^ bits - 10 ^ (bits - 1)))
            For j = 0 To i - 1
                If nums(i) = nums(j) Then Exit For
            Next j
            If j = i Then i = i + 1
        Loop
        Text1.Text = ""
        For i = 0 To 20 - 1 Step 5
            Text1.Text = Text1.Text & nums(i) & "  " & nums(i + 1) & " " & nums(i + 2) _
                         & " " & nums(i + 3) & " " & nums(i + 4) & vbCrLf
        Next i
        List1.Clear
        For i = 0 To 20 - 1
            For j = 1 To bits - 1
                If (nums(i) \ 10 ^ (j - 1)) Mod 10 >= _
                (nums(i) \ 10 ^ (j)) Mod 10 Then Exit For
            Next j
            If j = bits Then List1.AddItem nums(i)
        Next i
    End Sub