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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376982.html
標籤:其他



