题解 | #求平方根#
求平方根
http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c
此处是通过累加去求结果,每次增加一个奇数,获得下一次的平方和。而后将平方和与所给x进行比较。
class Solution {
public:
/**
*
* @param x int整型
* @return int整型
*/
int sqrt(int x) {
if(x<=0)
return 0; //小于等于0 返回0
int ans = 1;
int num = 1;
int i = 3;
while(num + i <= x){
num += i;
ans++; // 每加一个奇数,ans+1
i += 2;
}
return ans;
}
};
import java.util.*;
public class Solution {
/**
*
* @param x int整型
* @return int整型
*/
public int sqrt (int x) {
// write code here
if (x == 1 || x == 0)
return x;
int left = 0, right = x, mid = 0;
while (left < right) {
mid = left + (right - left) / 2;
if (((mid + 1) > x/(mid + 1)) && (mid <= x / mid))
return mid;
else if (mid > x / mid)
right = mid;
else
left = mid;
}
return mid;
}
}
科大讯飞公司氛围 472人发布