[Buổi 13][Đệ quy][HW] Bài 2: Đếm chữ số đệ quy


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Đế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

  1. Viết hàm đệ quy đếm chữ số.
  2. Quy ước số 0 có 1 chữ số.
  3. 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

There are no comments at the moment.

Zalo