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


mình code như này sai chỗ nào mn giúp với

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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?