数组中有
1,1,2,2,3,4,5
分别放在a(0)至a(6)位置
从这7个数字中找出
相加后 和 等于 5 的
或者 自身等于 5 的值
的
所有组合
比如
112 a(0)a(1),a(2)
112 a(0)a(1),a(3)
23 a(2),a(3)
23 a(2),a(4)
14 a(0),a(5)
14 a(1),a(5)
5 a(6)
请问如何实现?
谢谢!!!!!!!!!
1,1,2,2,3,4,5
分别放在a(0)至a(6)位置
从这7个数字中找出
相加后 和 等于 5 的
或者 自身等于 5 的值
的
所有组合
比如
112 a(0)a(1),a(2)
112 a(0)a(1),a(3)
23 a(2),a(3)
23 a(2),a(4)
14 a(0),a(5)
14 a(1),a(5)
5 a(6)
请问如何实现?
谢谢!!!!!!!!!
解决方案 »
- 100求 请问怎么实现文件上传 并覆盖服务器上的文件
- 关闭VB工程的问题
- 水晶报表如何刷新数据
- 问一个Imagelist中加载图片的问题
- 如何用程序來控制DATAREPORT物件
- 请教如何利用API获取本地机器的上网方式,拨号连接的名称,以及发送数据的字节数和接受到数据的字节数?
- ( 续 )新难题啊!!!怎样把image中的图片缩小并保存?~ 不是只随着image控件改变而改变! 100分!!!!(续)
- 如何让文件安装于当前系统环境变量设置的value值下(setup factory打包问题)
- 求救阿!我是超级菜鸟
- vb+sql的问题!!
- VB开发类拟于账簿金额栏的控件?
- 赚分帖,请勿删,谢谢
Option Explicit
Private Sub Carry(arr() As Long, m As Long, n As Long)
Dim idx As Long
Dim V As Long
idx = n
V = m - n
Do
arr(idx) = arr(idx) + 1
If arr(idx) > V + idx Then
idx = idx - 1
Else
Exit Do
End If
Loop
Do While idx < n
idx = idx + 1
arr(idx) = arr(idx - 1) + 1
Loop
End SubSub PrintArray(a, idx() As Long, mValue As String)
Dim i As Long
Dim sum As Long
Dim tmp As String
For i = 1 To UBound(idx)
sum = sum + a(idx(i) - 1)
tmp = tmp & a(idx(i) - 1)
Next
If sum = mValue Then Debug.Print tmp
End SubPrivate Sub Command1_Click()
Dim a()
Dim m As Long, n As Long
Dim i As Long, j As Long
a = Array(1, 1, 2, 2, 3, 4, 5)
m = UBound(a) + 1
For i = 1 To m
n = i
ReDim idx(n) As Long
For j = 1 To n
idx(j) = j
Next
idx(0) = -1
Do
PrintArray a, idx, 5
Carry idx, m, n
Loop Until idx(0) = 0
Next
End Sub
中,可以改一下,笔误了:
mValue As String ----> mValue As Long