二分
二分法求平方根其实是将问题转化为求 x 2 ≤ t a r g e t x^{2}{\leq}target x2≤target中x的最大整数值
int sqrt(int x){
int l=0,r=x;
int ans;
while(l<=r){
int mid=l+(r-l)/2;
if((long long)mid*mid<=x){
ans=mid;
l=mid+1;
}else
r=mid-1;
}
return ans;
}
牛顿迭代法
int Newton(int x){
if(x==0)
return 0;
double C=x,x0=x;
while(1){
double x1=0.5*(x0+C/x0);
if(fabs(x1-x0)<1e-7){
break;
}
x0=x1;
}
return int(x0);
}