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的幂
用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的幂
和上题方法一致
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
二维码