注册 登录
编程论坛 VB6论坛

VB编程:有5、6、8、9四个数字,能够组成多少个互不相同且无重复数字的三位数?

xiaoqing2014 发布于 2014-03-07 15:32, 2129 次点击
Dim a(3) as integer
Dim i%,j%,k%,m%,str$
a(0)=5:a(1)=6:a(2)=8:a(3)=9:m=0:str=""
for i=0 to 3
for j=0 to 3
for k=0 to 3
if i<>j and j<>k and i<>k then
m=m+1
next k
next j
next i
print m
这是我自己编的 ,但我不知道怎么把这三位数输出来,求教!!!
5 回复
#2
xlhcy20142014-03-07 17:49
程序代码:
Dim a(3) As Integer
Dim i%, j%, k%, m%, str$
a(0) = 5: a(1) = 6: a(2) = 8: a(3) = 9: m = 0: str = ""
For i = 0 To 3
For j = 0 To 3
For k = 0 To 3
If i <> j And j <> k And i <> k Then
str = CStr(a(i) * 100 + a(j) * 10 + a(k))
Print str
m = m + 1
End If
Next k
Next j
Next i
Print m
一共24个

[ 本帖最后由 xlhcy2014 于 2014-3-7 17:53 编辑 ]
#3
owenlu19812014-03-07 22:35
Private Sub Command1_Click()
Val = ""
A(0) = 5
A(1) = 6
A(2) = 8
A(3) = 9
n = -1
For i = 0 To 3
    For j = 0 To 3
        If j <> i Then
            For k = 0 To 3
                If k <> i And k <> j Then
                    NewVal = True
                    If n = -1 Then
                        NewVal = True
                    Else
                        For m = 0 To n
                            If A(i) * 100 + A(j) * 10 + A(k) = B(m) Then
                                NewVal = False
                            End If
                        Next m
                    End If
                    If NewVal = True Then
                        n = n + 1
                        B(n) = A(i) * 100 + A(j) * 10 + A(k)
                    End If
                End If
            Next k
        End If
    Next j
Next i
         
For m = 0 To n
    Val = IIf(Val = "", CStr(B(m)), Val & " " & CStr(B(m)))
Next m

Val = "共 " & (n + 1) & " 个值" & vbCrLf & Val
MsgBox Val
End Sub
#4
xiaoqing20142014-03-08 13:53
谢谢!不过三楼朋友的程序好复杂,我有些看不懂!
#5
owenlu19812014-03-08 15:11
以下是引用xiaoqing2014在2014-3-8 13:53:10的发言:

谢谢!不过三楼朋友的程序好复杂,我有些看不懂!



呵呵 ,其实就多加了一个循环判断 (去除因4个数字中有重复而造成的3位数重复)
#6
xiaoqing20142014-03-09 14:38
哦!谢谢!
1