leetcode题解报告(幂)

1.2的幂:

 

题目: 2的幂

 求2的幂很简单 只要二进制中只有一个1,也就是补码只有一个1即可

int getNum(int n)
{
    int count=0;
    while(n>0)
    {
        n&=n-1;
        count++;
    }
    return count;
}//找出补码中1的个数
bool isPowerOfTwo(int n){
int t=getNum(n);
    if(t==1)
    return true;
    else
    return false;
}

2. 3的幂

 

 3的幂

用1持续乘3直到等于n返回true

bool isPowerOfThree(int n){
if(n==0)
return false;
if(n==1)
return true;
unsigned int k=1;
for(int i=0;i<32;i++)
{
    k*=3;
    if(k==n)
    {
        return true;
        break;
    }
}
return false;
}

3. 4的幂

 

4的幂

和上题方法一致

bool isPowerOfFour(int n){
if(n==0)
return false;
if(n==1)
return true;
unsigned int k=1;
for(int i=0;i<20;i++)
{
    k*=4;
    if(k==n)
    {
        return true;
        break;
    }
}
return false;
}

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>