求助:一个asp下标越界的问题

bbhigh bbhigh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
求助:我用asp写了个组合的算法,调试一直出现“ If b(i)=1 And b(i+1)=0 Then ”这段代码出现下标越界,可我想不管怎么算也运算不到最后一个数组,可能是我已经思维定势了,求助大神给我解惑


Function CreateResult(a,b,m)

Dim result
result=""
n=UBound(a)-1
tempTest =""
j=0
For i=0 To n
tempTest = tempTest & "," & b(i)
j=j+1
If b(i)=1 Then
result = result & "+" & a(i)
End If
Next
CreateResult = result

End Function

Function Combination(a,m) '从数组a中选取m个数进行组合
Dim n,list
Dim b()
n = UBound(a)-1
ReDim b(n) '辅助数组。首先初始化,将数组前m个元素置为1,表示第一个组合为m个数

For i=0 To n

If i<m Then
b(i)=1
Else
b(i)=0
End If
Next

list = list & "|" & CreateResult(a,b,m)
tempEnd = "N"

Do While tempEnd ="N"
findFirst = "N"
swap = "N"

For i=0 To n
L=0
'Call JS_AlertBackEnd(i)
If findFirst="N" And b(i)=1 Then
k=i
findFirst = "Y"

End If

If b(i)=1 And b(i+1)=0 Then
b(i)=0
b(i+1)=1
swap = "Y"
If k<>1 Then
For L=0 To i-k
b(L)=b(k+1)
Next
For L=i-k To i
b(L)=0
Next
End If
If k=i And i=n-m Then
tempEnd = "Y"
End If
End If
If swap="Y" Then
Exit For
End If
Next
list = list & "|" & CreateResult(a,b,m)

Loop
Combination = list
End Function
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
bbhigh
ASP 28,401 成员 356,940 内容