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: 数字是2的幂

说明

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

如果N是偶数,只需简单地将N除以2。如果以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<<"数字是2的幂"<<endl;
      }
   }
   if(n == 0 || n != 1) {
      cout<<"数字不是2的幂"<<endl;
   }
   return 0;
}