Đơn giản với thuật toán x^n :)
Không nói dài dòng, mình đi thẳng vấn đề luôn nha:Cái này mình tự đặt là thuật toán chia nhỏ số mũ ra nha :p
Ex:
Đối với số mũ chẵn:
a10
= a5 * a5
Code được phân tích: pow(a, n/2) * pow(a, n/2)
Đối với số mũ lẻ:
a9
= a4 * a4 * a
Code được phân tích: pow(a, n/2) * pow(a, n/2) * a
Trong đó: n / 2 - lấy phần nguyên
Full code:#include <stdio.h> #include <conio.h> #include <math.h> void main() { float x = 5; long n = 0; float luyThua = pow(x, n/2); if(n == 1) { printf("Ket qua: %2.0f", x); }else{ if(n % 2 == 0) { printf("Ket qua: %2.0f", luyThua * luyThua); }else { printf("Ket qua: %2.0f", luyThua * luyThua * x); } } getch(); }
