不直接使用Math.sqrt()函数来求一个数的平方根 使用自己的方法来进行求解
二分查找的方法来实现x的平方根的求解
public static int binarySearch(int x)
{
int index = -1,left = 0,right = x;
while(left<=right)
{
int mid = (left+right)/2;
if(mid*mid<=x)
{
index = mid;
left = mid+1;
}
else
{
right=mid-1;
}
}
return index;
}
使用牛顿迭代的方法计算x的平方根
public static int newton(int x)
{
if(x==0)return 0;
else return (int)trueSqrt(x,x);
}
public static double trueSqrt(double i,int x)
{
double res = (i+x/i)/2;
if(res==i)return i;
else return trueSqrt(res,x);
}