trang chủ / bài tập / reachnum

Số đạt được

Đề bài

Mô tả

Định nghĩa hàm f(x) như sau: cộng 1 vào x, sau đó liên tục xóa các chữ số 0 ở cuối kết quả cho đến khi không còn chữ số 0 ở cuối nữa.

Ví dụ:

  • f(599)=6: 599+1=600606;
  • f(7)=8: 7+1=8;
  • f(9)=1: 9+1=101;
  • f(10099)=101: 10099+1=101001010101.

Ta nói số yđạt được từ x nếu có thể áp dụng hàm f lên x một số lần (có thể là 0) để được y. Mỗi số luôn đạt được từ chính nó.

Cho số nguyên n, hãy đếm xem có bao nhiêu số khác nhau đạt được từ n.

Dữ liệu vào

Một dòng duy nhất chứa một số nguyên n (1n109).

Dữ liệu ra

In ra một số nguyên duy nhất: số lượng số khác nhau đạt được từ n.

Ví dụ

Input Output Giải thích
1098 20 Các số đạt được từ 1098 là: 1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,1098,1099.
10 19 Bắt đầu từ 10, áp dụng f ta được 11,12,,19,2,3,,9,1 rồi quay lại vòng lặp. Tổng cộng có 19 số khác nhau.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0