01/10/2018, 10:17
Hàm kiểm tra số chính phương bị sai
MInh mới chế được hàm KT số chính phương, mấy số kia ra đúng tự nhiên chui đâu ra số 2.
Bài liên quan
MInh mới chế được hàm KT số chính phương, mấy số kia ra đúng tự nhiên chui đâu ra số 2.
Điều kiện thế này là đủ rồi bạn
Thêm thư viện
<math.h>
vào cho an toànDòng đầu bạn lấy hai cái sqrt nhân nhau ra 1.9999… nên thành 1 => nhận luôn số 2
^
<cmath>
Mà phải có ép kiểu nếu ko sẽ bị ambiguous
Chương trình mới nên bỏ
x.h
thay thànhcx
hả bác?C++ mà, thay bằng dạng
<cx>
hết.Thư viện C++ có thêm overload nữa. Nếu dùng math.h thì để xài phiên bản float hay long phải gọi sqrtf() hay sqrtl(). https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/
là sao hả pro
…
@Vinh_Nguyen4:
<math.h>
thì sang C++ thành<cmath>
. Tương tự như vậy với các thư viện khác.Bài này dùng số thực không sai (thớt sai) nhưng mà nếu lúc nào đó nghĩ đến log thì khoan dùng, trừ tính các biểu thức có nó.
Công nhận là thớt sai ạ. Ý em là bài này có thể dùng cách khác (nhưng chắc là thớt chưa học nên có lẽ thôi)
Đúng là có nhưng mà phải học số thực IEEE trước, và rất là ảo diệu.
khi tui viết hàm sqrt nó báo tui là chỉ được dùng 4 cái kiểu là float double và gì gì đó, ko co kiểu int nên tui phai ép kiểu cho nó
Đúng rồi, sqrt chỉ thực hiện với các tham số thực.
Thử cách của @Dark.Hades xem.
cách của @Dark.Hades thì chạy ok