Option Explicit
Const MAX_NUM = 60
Const MIN_NUM = 1
Const NUM_COUNT = 6
Const RESULT = 106
Dim num(NUM_COUNT) As Integer
Private Sub Command1_Click()
'在1~MAX_NUM间取所有NUM_COUNT个数的组合(不重复)
DebugPrint MIN_NUM & "~" & MAX_NUM & " 之间和为 " & RESULT & " 且不重复的" & NUM_COUNT & "个数有:"
Call PickNum(1, MIN_NUM)
End Sub
'获取一个数。iIndex为第几位数(1~NUM_COUNT);iBegin是该数的取值范围(MIN_NUM~MAX_NUM)
Private Sub PickNum(iIndex As Integer, iBegin As Integer)
Dim i As Integer
If iIndex = NUM_COUNT Then
'当前要获取的数已经是最后一位数了,说明数组已经填满,可以打印了
For i = iBegin To MAX_NUM
num(NUM_COUNT) = i
Call PrintNum
Next
Else
For i = iBegin To (MAX_NUM - NUM_COUNT + iBegin)
num(iIndex) = i
Call PickNum(iIndex + 1, i + 1)
Next
End If
End Sub
Private Sub PrintNum()
Static i As Integer
Static sum As Integer
Static s As String
'把数组打印出来前判断一下各位的和~~
sum = 0
For i = 1 To NUM_COUNT
sum = sum + num(i)
Next
If sum = RESULT Then
s = ""
For i = 1 To NUM_COUNT
s = s & num(i) & " "
Next
DebugPrint s
End If
End Sub
用递归可以~~但是执行效率很低~~而且我是输出到Debug窗口,能显示的行袱互递就郛脚店协锭茅数有限,所以数字太多时,前面的就被丢弃了,你可以换几个小一些的数看看效果~~
算术表达式是最常用的表达式,又称为数值表达式。它是通过算术运算符来进行运算的数学公式。我们先来看Visual Basic中的算术运算符:
算术运算符
1)乘法运算符
XY 求X乘Y的值 举例:67=42
2) 除法运算符 /
X/Y 求X除Y的值(浮点数运算) 举例:276/12=23
3)整除运算符 div
X div Y 求X除Y的整数商(对整型数计算) 举例:25=5
4)取余运算符 Mod
X mod Y 求X除Y的余数(对整型数运算) 举例:25 mod 4=1
5)加法运算符 +
X+Y 加法运算 举例:32+2=34
6)减法运算符 -
- X-Y 减法运算 举例:48-21=27
由于Visual Basic只能识别按其格式书写的数学表达式,所以必须将我们常用的数学表达式转换成Visual Basic表达式。
2、逻辑表达式
逻辑运算的结果只有两个:True(真)和False(假)。Visual Basic提供了六种关系运算符和三种逻辑运算符:
=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<>(不等于)
NOT(非)、AND(与)、OR(或)
运算关系
p q NOT p p AND q p OR q
True True False True True
True False False False True
False True True False True
False false True False False
例如:5>3 结果为 True, “a”>”b” 结果为False。
欢迎分享,转载请注明来源:表白网
评论列表(0条)