注意求平方根的原理,即二分法,x (x ≠ 0) 的平方根一定是落在 [1, x/2 + 1] 区间
,所以以此来解题
```c
int mySqrt(int x){
double z = 1, y = x;//float会超出时间限制
double mid = 1;
if(x==0)//因为为非负数,0直接为0
return 0;
while(y - z> 0.001)//此为循环条件,以此为条件进行不断减小区间
{
mid = (z + y) / 2;//二分
if(mid * mid > x)
y = mid;
else
z = mid;
}
if((unsigned int)(mid + 1) * (unsigned int)(mid + 1) == x)
return (int)(mid + 1);//unsigned增加了可容纳的大小
else
return (int)mid;
}