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ạ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??

1 Like

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àm exp với hàm ln (cực kì khó nếu bạn ko học phương pháp tính)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?