首页 > 数据库 > mysql教程 > 判断一个整数是不是2的整数次幂

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 15:36:46
原创
1812 人浏览过

#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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板