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
  • 相关阅读:
    DOM基本介绍
    BOM的基本介绍
    对象
    函数
    时钟
    双色球
    JS数据结构
    微信扫二维码根据系统下载apk
    javascript相关积累
    ajax精华
  • 原文地址:https://www.cnblogs.com/fengju/p/6336261.html
Copyright © 2011-2022 走看看