01/10/2018, 08:19
Hàm myPow được viết trong khóa c++
float myPow(float base, int32_t exponential)
{
float result = 1;
//calculate power of base
for(int32_t i = 1; i <= exponential; i++)
result *= base;
return result;
}
thuật toán này khi mình nhập số mũ là 0.5 thì không hoạt động đúng phải không ạ?
Bài liên quan
bạn xem định nghĩa hàm là biết số mũ yêu cầu phải là số nguyên.
0.5 có phải kiểu nguyên không??
Mình nghĩ không phải là hoạt động không đúng mà là không hoạt động được
mình có thể khắc phục nó thế nào vậy ac
Hàm đó có thể viết lại để cho nó sử dụng phép bình phương chứ nhân vầy dễ bị sai.
Nếu bạn muốn mũ lẻ thì cứ
powf pow powl
mà quất. Còn muốn viết lại từ đầu thì bạn phải viết lại được hàmexp
với hàmln
(cực kì khó nếu bạn ko học phương pháp tính)