考察的知识点:二分查找;

解答方法分析:

  1. 将平方根的可能范围设置为[0, x];
  2. 循环迭代直到找到一个精度足够的平方根值。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param x int整型
     * @return string字符串
     */
    string mySqrt(int x) {
        double left = 0, right = x;
        while (right - left > 1e-6) {
            double mid = (left + right) / 2;
            if (mid * mid > x) {
                right = mid;
            } else {
                left = mid;
            }
        }
        return to_string(left).substr(0, to_string(left).find('.') + 3);
    }
};