题解 | 求平方根
求平方根
https://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param x int整型
* @return int整型
*/
//注意题目要求的数据范围,我用的unsigned long
int mysqrt(unsigned long x) {
unsigned long i = x / 2;
unsigned long j = x;
//二分法确定答案的一个大致的范围
while (1) {
if (i * i > x) {
j = i;
i /= 2;
} else {
break;
}
}
unsigned long k = i;
//cout << "i=" << i << endl << "j=" << j << endl;
//常规一个一个去试
for (k = i; k <= j; k++) {
if (k * k <= x && (k + 1) * (k + 1) > x) {
break;
}
}
return k;
}
};