Viết hàm trả về số hài hòa thứ n là tổng nghịch đảo của n số tự nhiên đầu tiên
1/n
là phép tính chia số nguyên, giá trị tự lấy phần nguyên và bỏ qua phần thập phân. Ép kiểu n
về số thực hoặc khai báo nó là số thực.
3 Likes
Nhưng mình để harmonic là kiểu double rồi mà
đề bài bắt buộc n là số nguyên mà
Uhm.
Ý của @SITUVN.gcd là:
- Vì n là số nguyên, 1/n cũng là số nguyên (1/2=0) => cậu bị mất toàn bộ phần sau dấu phẩy. Kết quả của cậu sẽ bị sai vì lý do đó.
- Nếu cậu chuyển parameter n về double/float, 1/n sẽ là số double (1/2.0 = 0.5), nên code của cậu sẽ chạy đúng trong TH này.
n lúc nhận từ stdin có thể là số nguyên, nhưng khi cậu gọi harmoni(n), cậu nên ép kiểu n sang số thực harmoni((double) n).
Đọc thêm về mấy phép tính đấy ở đây nhé cậu!
Hope it helps!
5 Likes
Thực ra có hai lựa chọn: hoặc 1.0
(tức là double) hoặc double n
. Mà int n
mới là đúng ý nghĩa.
6 Likes