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:
Sách "Lập trình cơ sở với Python"
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 tong chưa từng được gán → NameError (Runtime Error). Chương trình đã sửa phải in 1.

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...