Chủ Nhật, 29 tháng 11, 2015

Đơn giản với thuật toán x^n :)

Đơ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(); }