檢查數字是否為 C++ 中的 8 次冪


在本節中,我們將學習使用一些更簡單的方法,檢查一個數字是否是 8 的冪。如果存在像 4096 這樣的數字,那麼程式將返回真,因為這是 8 的冪。

訣竅很簡單。我們將計算 log8(num)。如果這是一個整數,那麼 n 就是 8 的冪。這裡我們將使用 tranc(n) 函式來查詢 double 值的最近整數。

示例

 線上演示

#include <iostream>
#include <cmath>
using namespace std;
bool isPowerOfEight(int n) {
   double val = log(n)/log(8); //get log n to the base 8
   return (val - trunc(val) < 0.000001);
}
int main() {
   int number = 4096;
   if(isPowerOfEight(number)){
      cout << number << " is power of 8";
   } else {
      cout << number << " is not power of 8";
   }
}

輸出

4096 is power of 8

更新日期:22-Oct-2019

415 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.