您的位置:首页 > 编程语言 > C语言/C++

[leetcode]-231. Power of Two(C语言)

2018-03-17 19:40 387 查看
Given an integer, write a function to determine if it is a power of two.
方法一:bool isPowerOfTwo(int n) {
if(n<0)
return false;
double s=log10(n)/log10(2);
if(s-(int)s==0)
return true;
return false;
}方法二:bool isPowerOfTwo(int n) {
int i,j;
if(n<=0)
return false;
if(n==1)
return true;
while(n!=1)
{
if(n%2==0)
n=n/2;
else
return false;
}
return true;
}方法三:
将整数n转换为二进制形式,那么2的幂次为10,100,1000,等的形式,将转换后的二进制放在数组里,看是否每一位都是0即可(开头的1没必要存储下来)
bool isPowerOfTwo(int n) {
int a,b,i,c=0;
int s[100];
if(n<=0)
return false;
if(n==1)
return true;
a=n/2;
while(a!=0)
{
b=n%2;
s[c++]=b;
n=a;
a=n/2;
}
for(i=0;i<=c-1;i++)
{
if(s[i]!=0)
break;
}
if(i==c)
return true;
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: