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+次瀏覽

開啟您的 職業

完成課程並獲得認證

開始
廣告
© . All rights reserved.