Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
float sum(int);
int main() {
float S = 0.0;
int N=2,k;
for (k = 1; k <= N; k++)
S += 1/sum(k); cout <<
S; return 0;
}
float sum(int k) {
int tong = 0;
for(int x = 1; x <= k; x++)
tong += x;
return tong;
}
Trả lời:
Đáp án đúng: B
Đầu tiên, ta xem xét hàm `sum(int k)`. Hàm này tính tổng các số từ 1 đến `k`.
Tiếp theo, ta xem xét đoạn code `main()`:
- `S` được khởi tạo là 0.0.
- Vòng lặp `for` chạy từ `k = 1` đến `k = 2`.
- Trong mỗi lần lặp, `S` tăng thêm `1/sum(k)`.
Khi `k = 1`, `sum(1)` trả về 1, vậy `S += 1/1 = 1`. `S` bây giờ là 1.0.
Khi `k = 2`, `sum(2)` trả về 1 + 2 = 3, vậy `S += 1/3`. `S` bây giờ là 1.0 + 1/3 = 1.33333.
Vậy kết quả cuối cùng của `S` là 1.33333.