[Buổi 14][Củng cố đệ quy][Lab] Bài 1: Sửa hàm tổng bị kẹt
Sửa hàm tổng bị kẹt
Bối cảnh
Một hàm đệ quy tính tổng 1..n đang bị lỗi vì lời gọi không tiến về base case.
Bạn cần sửa đúng logic và in kết quả.
Yêu cầu
- Viết/sửa hàm tính tổng 1..n bằng recursion.
- Base case n=0.
- Recursive call phải dùng bài toán nhỏ hơn.
- In kết quả.
Yêu cầu tổ chức code
Phải dùng recursion sau khi sửa; không thay toàn bộ bằng vòng lặp.
Online Judge chủ yếu chấm output. Giảng viên sẽ quan sát thêm cách tổ chức hàm khi review code để bảo đảm học viên luyện đúng kỹ năng của buổi.
Input
Một số nguyên n.
Output
Một số nguyên.
Ràng buộc
0 ≤ n ≤ 5000.
Ví dụ 1
Input
0
Output
0
Giải thích
Với n=5, phiên bản đã sửa phải luôn tiến gần base case bằng cách gọi với n-1. Chuỗi lời gọi là 5→4→3→2→1→0; tại 0 hàm dừng, rồi các tầng return cộng ngược lại thành 1+2+3+4+5 = 15. Output 15 chứng minh cả base case lẫn bước tiến n-1 đều hoạt động đúng.
Ví dụ 2
Input
1
Output
1
Giải thích
Input 0 là trường hợp chạm base case ngay lập tức. Hàm không được gọi lại với cùng giá trị hoặc giá trị lớn hơn, nếu không sẽ lặp vô hạn. Khi base case trả 0, chương trình in 0, xác nhận lỗi recursion bị kẹt đã được loại bỏ.
Thông tin học tập
- Module: M04
- Buổi: B14
- Loại bài: LAB
- Độ khó: Easy
- Concepts: recursion debugging, base case, progress toward base case, return flow
- Giới hạn kiến thức: B01-B14
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments