class Solution{
public:
double sqrt(double k) {
double eps = 1e-9;
double l = 0.0, r, mid;
if (k>=1) r = k; // 若输入正数大于1,则右端点设为 k
if (k<1) r = 1; // 若输入整数小于1,则右端点设为 1
while (fabs(l*l-k)>eps)
{
mid = l + (r - l) /2 ;
if (mid*mid<k) {
l = mid;
}
else {
r = mid;
}
}
return l;
}
};
class Solution{
public:
double sqrt(double k) {
double eps = 1e-6;
double l = 0.0, r, mid;
if (k>=1) r = k; // 若输入正数大于1,则右端点设为 k
if (k<1) r = 1; // 若输入整数小于1,则右端点设为 1
while (fabs(l-k/l)>eps)
{
mid = l + (r - l) /2 ;
if (mid<k/mid)
{
l = mid;
}
else {
r = mid;
}
}
return l;
}
};