描述
实现函数 int sqrt(int x).
计算并返回 x 的平方根(向下取整)
代码
直接使用函数
/**
*
* @param x int整型
* @return int整型
*/
function sqrt( x ) {
// write code here
return Math.floor(Math.sqrt(x))
}
module.exports = {
sqrt : sqrt
};
暴力
/**
*
* @param x int整型
* @return int整型
*/
function sqrt( x ) {
// write code here
if(x<=0) return 0
for(let i=1;i<=x;i++){
if(i*i<=x&&(i+1)*(i+1)>x){
return i
}
}
}
module.exports = {
sqrt : sqrt
};
二分查找
/**
*
* @param x int整型
* @return int整型
*/
function sqrt( x ) {
// write code here
if(x<=0) return 0
let left=1,right=x
while(1){
let middle=(left+right)>>1
if(middle<=x/middle&&(middle+1)>x/(middle+1)){
return Math.floor(middle)
}else if(middle<x/middle){
left=middle+1
}else{
right=middle-1
}
}
}
module.exports = {
sqrt : sqrt
};