Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra số có phải lũy thừa của 8 trong C++


Kiểm tra một số có phải là lũy thừa của 8 hay không. Ví dụ 4096 là lũy thừa của 8.

Cách đơn giản: tính log₈(n). Nếu kết quả là số nguyên thì n là lũy thừa của 8. Dùng hàm trunc để lấy phần nguyên so sánh.

Ví dụ

#include <iostream>
#include <cmath>
using namespace std;

bool isPowerOfEight(int n) {
    double val = log(n)/log(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";
    }
}

Kết quả

4096 is power of 8