zoukankan      html  css  js  c++  java
  • 递归列举从数组b()中选出某些元素(允许重复)使其和等于num的所有组合

    1. Dim mycount As Long, s(1 To 65536, 1 To 1), num As Long
    2. Sub main()
    3. Dim a, b
    4. num = 45
    5. b = Array(10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
    6. ReDim a(num)
    7. a(0) = b(0)
    8. search num, 0, 0, a, b
    9. [a1].Resize(65536) = s
    10. MsgBox "OK", , "Total count=" & mycount
    11. End Sub
    12. Sub search(ByVal n As LongByVal j As LongByVal index As LongByRef a, ByRef b)
    13. For i = index To UBound(b)
    14. If n = b(i) Then
    15. mycount = mycount + 1
    16. a(j) = b(i)
    17. For k = 0 To j
    18. s(mycount, 1) = s(mycount, 1) & " " & a(k)
    19. Next
    20. s(mycount, 1) = Replace(Trim(s(mycount, 1)), " ""+") & "=" & num
    21. Else
    22. a(j) = b(i)
    23. If n >= b(i) Then search n - b(i), j + 1, i, a, b
    24. End If
    25. Next
    26. End Sub
  • 相关阅读:
    到达波密
    福建
    到达拉萨
    樟木半天游
    修改控制寄存器GPBCON
    WINCE实现屏幕旋转的方法
    6410主频
    如何解决触摸屏抖动问题
    视频格式D1
    安家了
  • 原文地址:https://www.cnblogs.com/fengju/p/6336261.html
Copyright © 2011-2022 走看看