目录

确定一个数字是否为-2-的幂

确定一个数字是否为 2 的幂

#include <iostream>
using namespace std;
bool er(long long n)
{
  if(n<=0)
  {
    return false;
  }
  return (n&(n-1))==0;
}
/*
bool er(long long n)
{
    if(n<=0)
    {
        return false;
    }
    while(n>1)
    {
        if(n%2!=0)
            {
                return false;}
        n/=2;
    }
    return true;
}
*/

int main()
{
  // 请在此输入您的代码
  long long n;
  cin>>n;
  if(er(n))
  {
    cout<<"YES";
  }
  else{
    cout<<"NO";
  }

  return 0;
}

确定一个数字是否为 2 的幂

题目描述

实现一个算法确定一个数字 NN 是否为 2 的幂。

若该数字是 2 的幂则输出 YES ,否则输出 NO

输入描述

输入一个数字 N (1≤N≤108)N (1≤N≤108)。

输出描述

输出一行,若 NN 是 2 的幂则输出 YES ,否则输出 NO

输入输出样例

示例

输入

8

https://i-blog.csdnimg.cn/direct/3050463596714eb6ba6e29a3ffa4e0ba.png

输出

YES