[Buổi 13][Đệ quy][HW] Bài 2: Đếm chữ số đệ quy
Đếm chữ số đệ quy
Bối cảnh
Một thiết bị ghi nhận mã số dưới dạng số nguyên không âm và cần biết mã đó chiếm bao nhiêu chữ số thập phân để lựa chọn vùng hiển thị phù hợp. Không được chuyển số sang chuỗi; thay vào đó, mỗi lần chia nguyên cho 10 sẽ bỏ chữ số cuối cùng. Điều này tạo ra một cấu trúc recursion rất tự nhiên: số chữ số của n bằng 1 cộng số chữ số của n/10, cho đến khi chỉ còn một chữ số. Bài Easy tập trung vào việc chọn base case đúng cho cả số 0 và các số một chữ số, đồng thời giúp học viên thấy recursion có thể xử lý dữ liệu số theo từng "lớp" tương tự cách ta duyệt từng phần tử của mảng.
Yêu cầu
- Viết hàm đệ quy đếm chữ số.
- Quy ước số 0 có 1 chữ số.
- In kết quả.
Input
Một số nguyên không âm.
Output
Một số nguyên.
Ràng buộc
0 ≤ n ≤ 10^18-1.
Ví dụ 1
Input
0
Output
1
Giải thích
Số 5832 có bốn chữ số. Recursion lần lượt biến 5832→583→58→5. Khi còn 5, đây là số một chữ số nên base case trả 1. Các tầng phía trên cộng thêm 1 ba lần, tạo tổng 1+1+1+1 = 4. Vì vậy output là 4.
Ví dụ 2
Input
7
Output
1
Giải thích
Với input 0, mặc dù không thể tiếp tục chia để "bỏ chữ số", biểu diễn thập phân của số 0 vẫn gồm đúng một chữ số 0. Base case phải nhận diện trường hợp này và trả 1, nên output là 1.
Thông tin học tập
- Module: M04
- Buổi: B13
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: recursion, digit processing, base case
- Giới hạn kiến thức: B01-B13
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments