Implement the int sqrt(int x)
1:注意特殊情况;2:使用高斯公式 a = a / 2.0 + x / (2.0 * a)
int sqrt(int x)
{
if( x <= 0)
{
return 0;
}
if(x == 1)
{
return 1;
}
double pre = 1.0;
double cur = 0.0;
do
{
cur = pre;
pre = cur / 2.0 + x / (2.0 * cur);
}
while(pre - cur > 0.0000001 || pre - cur < -0.0000001);
return (int)cur;
}