C4-17 · Tìm lỗi: tổng từ 1 đến n
Xem dạng PDF
Gửi bài giải
Điểm:
1,00
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
Python
Đề
Đề bài như C4-01: cho số nguyên dương n, in tổng 1 + 2 + … + n tính bằng vòng lặp.
Một bạn đã viết chương trình dưới đây. Với dữ liệu vào 5, chương trình in 4 thay vì 15.
n = int(input())
for i in range(1, n):
tong = 0
tong += i
print(tong)
Hãy lập bảng vết, tìm và sửa hai lỗi, rồi nộp chương trình đã sửa. Hệ thống chấm chương trình của bạn theo đề C4-01.
Dữ liệu vào
Một dòng chứa số nguyên n.
Kết quả
Một dòng: tổng 1 + 2 + … + n.
Ràng buộc
- 1 ≤ n ≤ 10⁶.
Ví dụ
Dữ liệu vào:
5
Kết quả:
15
Giải thích ví dụ
Bảng vết chương trình lỗi với n = 5:
| Lần lặp | i | tong = 0 |
tong += i |
|---|---|---|---|
| 1 | 1 | 0 | 1 |
| 2 | 2 | 0 | 2 |
| 3 | 3 | 0 | 3 |
| 4 | 4 | 0 | 4 |
| (hết) | in 4 |
Bảng vết cho thấy hai triệu chứng: tong bị đặt lại 0 ở mỗi lần lặp (chỉ còn số cuối), và i chỉ chạy tới 4 (thiếu số 5). Chương trình đúng cộng 1 + 2 + 3 + 4 + 5 = 15.
Ghi chú
- Sửa một lỗi chưa đủ: hệ thống có test bắt riêng từng lỗi.
- Thử chương trình lỗi với n = 1: vòng lặp không chạy lần nào, biến
tongchưa từng được gán →NameError(Runtime Error). Chương trình đã sửa phải in1.
Nguồn trong sách: Bài C4-17, mục 4.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)
Đang tải...