C++程序,用于判断一个数字是否为2的幂


检查一个给定的数字是否是2的幂。首先检查以下哪些数字是2的幂,哪些不是。此代码检查该数字是否是奇数,然后同时对其进行除法,直到它变为0或奇数。如果它变为0,则它是2的幂,否则不是。

一个更好的选择是取该数字的对数。如果是整数,则n是2的幂,否则不是。2的幂的数字

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ...
22 = 4
25 = 32
210 = 1024


Input: 8
Output: Number is power of 2

说明

一种简单的方法是直接取该数字以2为底的对数,如果得到一个整数,则该数字是2的幂。

通过不断用2对N进行除法,如果N是偶数。如果最后它变为1,则N是2的幂

示例

#include <iostream>
using namespace std;
int main() {
   int n=8;
   if(n>0) {
      while(n%2 == 0) {
         n/=2;
      }
      if(n == 1) {
         cout<<"Number is power of 2"<<endl;
      }
   }
   if(n == 0 || n != 1) {
      cout<<"Number is not power of 2"<<endl;
   }
   return 0;
}

2019年8月20日更新

2K+次浏览

开启您的 职业

完成课程并获得认证

开始
广告