// 求近似值 funcsqrt(x float64)float64 { l, r := float64(1), x mid := (l + r) / 2 for mid-l > 0.000001 { if mid*mid > x { r = mid } else { l = mid } mid = (l + r) / 2 } return mid }
// 只能求整数部分 funcmySqrt(x float64)float64 { l, r := float64(0), x ans := -1.0 for l <= r { mid := l + (r-l)/2 if mid*mid > x { r = mid - 1 } else { ans = mid l = mid + 1 } } return ans }