检测整数 n 是否是 2 的幂次。
class Solution {
public:
/**
* @param n: An integer
* @return: True or false
*/
bool checkPowerOf2(int n) {
// write your code here
if(n==1)return 1;
int left=0;
int right=n;
int m=(left+right)/2;
while(left+1<right)
{
if(n>pow(2,m)){left=m;}
else if(n<pow(2,m)){right=m;}
else return 1;
m=(left+right)/2;
}
return 0;
}
};
实现 int sqrt(int x) 函数,计算并返回 x 的平方根。
class Solution {
public:
/**
* @param x: An integer
* @return: The sqrt of x
*/
int sqrt(int x) {
// write your code here
if(x==0)return 0;
if(x==1)return 1;
long left=0;
long right=x;
long m=(left+right)/2;
while(left+1<right)
{
if(x>m*m){left=m;}
else if(x<m*m){right=m;}
else return m;
m=(left+right)/2;
}
return left;
}
};