|
先把345两位数/一位数的分离出来,剩下的全搜索,会快很多。- Sub test5()
- Dim k&, n&, s, tms#
- [a:a] = ""
- tms = Timer
- For x345 = 123 To 987
- If Chk(x345) Then
- x34 = x345 \ 10: x5 = x345 Mod 10
- If x34 Mod x5 = 0 Then
- For k = 1234 To 9876
- If Chk(k & x345) Then
- x1 = Val(Left(k, 1)): x2 = Val(Mid(k, 2, 1))
- x6 = Val(Mid(k, 3, 1)): x7 = Val(Mid(k, 4, 1))
- s = x1 ^ x2 + x34 / x5 - x6 * x7
- If s > 0 And Len(s) = 2 Then
- If Chk(s & k & x345) Then
- n = n + 1
- Cells(n, 1) = x1 & "^" & x2 & "+" & x34 & "/" & x5 & "-" & x6 & "*" & x7 & "=" & s
- End If
- End If
- End If
- Next
- End If
- End If
- Next
- MsgBox Format(Timer - tms, "0.000s ") & n
- End Sub
- Function Chk(s) As Boolean
- Dim i&
- If InStr(s, "0") Then Exit Function
- For i = 1 To Len(s) - 1
- If InStr(i + 1, s, Mid(s, i, 1)) Then Exit Function
- Next
- Chk = True
- End Function
复制代码 |
|