首頁 > 資料庫 > mysql教程 > 判断一个整数是不是2的整数次幂

判断一个整数是不是2的整数次幂

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 15:36:46
原創
1816 人瀏覽過

#includeiostream using namespace std; //第一种方法利用循环 bool MakeDecision(const int M,int pow) //pow表示M是2的多少次幂 { int i=2; int s=1; pow=0; if(M0) return false; if(M==0) return true; do { s*=i; pow; }while(sM); if(s==M) return tru

#include

using namespace std;

//第一种方法利用循环
bool MakeDecision(const int& M,int &pow) //pow表示M是2的多少次幂
{
 int i=2;
 int s=1;
 pow=0;
 if(M  if(M==0) return true;
 do
 {
  s*=i;
  pow++;
 }while(s  if(s==M) return true;
 else
 {
  pow=0;
  return false;
 }
}

//第二种方法,如果M/2是2的整数次幂,那么M就是2的整数次幂,递归实现
bool MakeDecision(int M,int *pow)
{
 if(M  if(M%2!=0) return false;
 if(M==0) return true;
 else if(M==2)
 {
  *pow=*pow+1;
  return true;
 }
 else
 {
  *pow=*pow+1;
  MakeDecision(M/2,pow);
 }
}

//一个是2的整数次幂的整数,它的第0,1,2...都是1,而其余位都是0,这样-M的补码有1位1的位置和M的补码1的位置是相同的
//因此M & -M 就是M
bool MakeDecision(int& M)
{
 return M == (M & (-M));
}

void main()
{
 cout  int M;
 cin>>M;
 int pow=0;
 //if(MakeDecision(M,&pow)) cout  if(MakeDecision(M)) cout  else cout }

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
Python判斷變數是否存在
來自於 1970-01-01 08:00:00
0
0
0
objective-c - iOS判斷銀行卡
來自於 1970-01-01 08:00:00
0
0
0
怎麼判斷composer安裝成功?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板