求VB代码--由1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数都是多少?

提示:可填在百位十位个位的数字都是1234组成所有的排列后再去掉不满足条件的排列——————小弟是菜鸟·~老师出的题,触发方式和界面设置都不限~~~帮帮忙哦~~~代码正确的有追加分!~
最好在窗体上能PRINT出来---谢谢!~~

第1个回答  2008-11-17
Private Sub Form_Activate()
Dim c As Integer
For i = 1 To 4
For j = 1 To 4
For w = 1 To 4
If i <> j And j <> w Then
Debug.Print i & j & w
c = c + 1
End If
Next
Next
Next
MsgBox "共有" & c & "个"
End Sub本回答被提问者采纳
第2个回答  2008-11-17
msgbox "能组成" & 2 * 3 * 4 & "个互不相同且无重复数字的三位数"

最好在窗体上能PRINT出来,用下面的代码:
Private Sub Form_Click() '单击窗体
Me.Cls
Print "能组成" & 2 * 3 * 4 & "个互不相同且无重复数字的三位数"
End Sub
第3个回答  2008-11-17
Function getLength(ByVal C As Integer, ByVal L As Integer) As Integer 'C为变化的数量,L为字符数

Dim s1(C ^ L - 1) As String '建立全部字符串
Dim SI As Integer = -1
Dim I, II As Integer
For I = 0 To C - 1 '按变化
For II = 0 To L - 1 '按字符数
SI = SI + 1 '序列号
s1(SI) = s1(SI) & Str(I) '附值字符串
Next
Next

'检测
Dim R As Integer
For I = 0 To s1.Length - 1
For II = 0 To C - 1
If s1(I).IndexOf(Str(II)) <> s1(I).LastIndexOf(Str(II)) Then R = R + 1 '如果有2个以上该字符 R值 + 1
Next
Next

Return s1.Length - R
End Function

用该函数你可以任意的变化数和字符数都可以算出没重复字符的数量
计算4种变化,3位数的方法:
msgbox(getLength(4,3))
第4个回答  2008-11-17
Option Explicit
'最简单的当然是这个
Private Sub Command2_Click()
Dim i%, j%, k%
For i = 1 To 4
For j = 1 To 4
If j <> i Then
For k = 1 To 4
If k <> i And k <> j Then Print i & j & k
Next k
End If
Next j
Next i
End Sub
'下面让你看一下牛人的程序,只用一重循环
Private Sub Command1_Click()
Dim i%, j%
Dim M(1 To 3) As Integer
Dim Tmp(1 To 4) As Boolean
Dim Flag As Boolean

For i = 0 To 63

Tmp(1) = False
Tmp(2) = False
Tmp(3) = False
Tmp(4) = False
Flag = True

M(1) = (i And 48) \ 16 + 1
M(2) = (i And 12) \ 4 + 1
M(3) = (i And 3) + 1

For j = 1 To 3
If Tmp(M(j)) Then
Flag = False
Exit For
Else
Tmp(M(j)) = True
End If
Next j

If Flag Then Print M(1) & M(2) & M(3)

Next i

End Sub
第5个回答  2008-11-17
s = 0
For i1 = 1 To 4
For i2 = 1 To 4
For i3 = 1 To 4
If i1 <> i2 And i1 <> i3 And i2 <> i3 Then
Print i1 & i2 & i3
s = s + 1
End If
Next i3, i2, i1
Print " 总数:" & s
相似回答