Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
解题思路:
这道题我的思路就是二分法查找结果了,这个比较简单就不多说。
public class Solution {
public int mySqrt(int x) {
long longx = x;
long first = 0;
long last = longx/2;
long mid = longx/2;
while(mid*mid != x)
{
if(mid*mid<longx)
{
if((mid+1)*(mid+1)>longx)
return (int)mid;
else if((mid+1)*(mid+1)==longx)
return (int)mid+1;
else
{
first = mid+1;
mid = (first+last)/2;
}
}
else
{
if((mid-1)*(mid-1)<=longx)
return (int)mid-1;
else
{
last = mid-1;
mid = (first+last)/2;
}
}
}
return (int)mid;
}
}
网上还说到一种牛顿迭代法,但是我看代码跟二分法差不多....就不贴代码了