- Sub Test()
- Dim s$, A$(), R As New RegExp, K$()
- s = Application.InputBox("Ax+By+Cz=D", "请加入A,B,C,D的值,以逗号隔开且为正整数", "14,21,26,488", , , , , 2)
- If Len(s) = 0 Then Exit Sub
- A = Split(s, ",")
- s = VBA.String(CLng(A(3)), "@")
- With R
- .Global = True
- .Pattern = "^(.+?)\1{" & CLng(A(0)) - 1 & "}(.+)\2{" & CLng(A(1)) - 1 & "}(.+)\3{" & CLng(A(2)) - 1 & "}$"
- If .Test(s) Then
- K = Split(.Replace(s, "$1 $2 $3"))
- MsgBox "已求方程的最小正整数解为" & vbCrLf & "A:" & Len(K(0)) & " ;B:" & Len(K(1)) & " ;C:" & Len(K(2))
- Else
- MsgBox "方程无正整数解"
- End If
- End With
- End Sub
复制代码 |