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

Viết chương trình tính pow(x,n) trong C++

Trong bài toán này, cho hai số nguyên x và n. Nhiệm vụ là viết chương trình tính pow(x,n).

Ví dụ:

Input

x = 5, n = 3

Output

125

Chương trình tính pow(x,n) hiệu quả bằng đệ quy chia đôi:

Ví dụ minh họa

#include <iostream>
using namespace std;

float myPow(float x, int y) {
    if (y == 0)
        return 1;
    float temp = myPow(x, y / 2);
    if (y % 2 == 0)
        return temp * temp;
    else {
        if (y > 0)
            return x * temp * temp;
        else
            return (temp * temp) / x;
    }
}

int main() {
    float x = 5;
    int n = 7;
    cout << x << " mũ " << n << " là " << myPow(x, n);
    return 0;
}

Kết quả

5 mũ 7 là 78125

Chương trình dùng cách chia đôi lũy thừa, giảm độ phức tạp xuống O(log n), hỗ trợ cả số mũ âm.