'求sqr(2),先高速接近目标值,然后采用10分法求值,总跨距23个数量级,用时10ms以内 Option Explicit Private Sub Command1_Click() Dim i, t, a, b, stp, d t = Timer: d = 10 ^ -13 '设置精度 a = -5 * 10 ^ 9: b = 5 * 10 ^ 9 '跨距100亿 stp = (b - a) / 10 ^ 3 '第一个step值,先高速接近(经验值) Do For i = a To b Step stp If i ^ 2 < 2 And (i + stp) ^ 2 > 2 Then '目标值在这个区间内 a = i: b = i + stp: stp = (b - a) / 10 Exit For End If Next If Abs(i ^ 2 - 2) < d Then Exit Do Loop Debug.Print i Debug.Print Timer - t End Sub