例如:1in2out*5+2in6out*6 (只有字符"in" "out" "*" "+"4种)要求:读取全部in前面的数字并得出总数 和 全部out前面的数字并得出总数
*5则表示循环1in2out5次 同理*6则表示循环2in6out6次
结果:in 应该=1*5+2*6 总数=17
out 应该=2*5+6*6 总数=46
提示:1in2out*5这种循环可以有很多
*5则表示循环1in2out5次 同理*6则表示循环2in6out6次
结果:in 应该=1*5+2*6 总数=17
out 应该=2*5+6*6 总数=46
提示:1in2out*5这种循环可以有很多
dim NewStr as string
dim Count as integer ‘存放循环次数
dim In as long,Out as long ‘存放In、Out前面出现的数字之和 STR="1in2out*5+2in6out*6"NewStr=STRdo while true
if InStr(NewStr,"+")=0 exit do
S=left(NewStr,InStr(STR,"+")-1)
NewStr=mid(NewStr,len(S)+1,len(NewStr)-len(S))
Count=val(mid(S,InStr(S,"*")+1,len(S)-InStr(S,"*")))
In=In+Count*val(left(S,InStr(S,"in")-1))
mid(S,1,InStr(S,"in")+1)=space(InStr(S,"in")+1)
Out=out+Count*val(left(S,InStr(S,"out")-1))
loopdebug.print "In="& str(In) " out=" & str(Out)
Dim Sin As Long, Sout As Long, mul As Long, i As Integer
s = "1in2out*5+2in6out*6+4in2out*6"
arr = Split(s, "+")
For i = 0 To UBound(arr)
mul = Val(Mid(arr(i), InStrRev(arr(i), "*") + 1))
Sin = Sin + mul * Val(arr(i))
Sout = Sout + mul * Val(Mid(arr(i), InStr(arr(i), "in") + 2))
Next i
Debug.Print Sin, Sout