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

Sáng Béo viết 10:32 ngày 01/10/2018

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

Trần Hoàn viết 10:32 ngày 01/10/2018

Mình nghĩ không phải là hoạt động không đúng mà là không hoạt động được

The Sao viết 10:35 ngày 01/10/2018

mình có thể khắc phục nó thế nào vậy ac

rogp10 viết 10:31 ngày 01/10/2018

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)

Bài liên quan
0