- DimmycountAsLong,s(1To65536,1To1),numAsLong
- Submain()
- Dima,b
- num=45
- b=Array(10,9,8,7,6,5,4,3,2,1)
- ReDima(num)
- a(0)=b(0)
- searchnum,0,0,a,b
- [a1].Resize(65536)=s
- MsgBox"OK",,"Totalcount="&mycount
- EndSub
- Subsearch(ByValnAsLong,ByValjAsLong,ByValindexAsLong,ByRefa,ByRefb)
- Fori=indexToUBound(b)
- Ifn=b(i)Then
- mycount=mycount+1
- a(j)=b(i)
- Fork=0Toj
- s(mycount,1)=s(mycount,1)&""&a(k)
- Next
- s(mycount,1)=Replace(Trim(s(mycount,1)),"","+")&"="&num
- Else
- a(j)=b(i)
- Ifn>=b(i)Thensearchn-b(i),j+1,i,a,b
- EndIf
- Next
- EndSub
递归列举从数组b()中选出某些元素(允许重复)使其和等于num的所有组合
最新推荐文章于 2020-11-23 14:01:37 发布
本文介绍了一段使用VBA实现的递归搜索算法,该算法通过定义数组并利用递归的方式查找符合条件的组合。文章展示了如何初始化数组、进行递归调用以及最终输出所有可能的组合。
4165

被折叠的 条评论
为什么被折叠?



