308751: CF1570D. Reachable Numbers

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Reachable Numbers

题目描述

Let's denote a function $ f(x) $ in such a way: we add $ 1 $ to $ x $ , then, while there is at least one trailing zero in the resulting number, we remove that zero. For example, - $ f(599) = 6 $ : $ 599 + 1 = 600 \rightarrow 60 \rightarrow 6 $ ; - $ f(7) = 8 $ : $ 7 + 1 = 8 $ ; - $ f(9) = 1 $ : $ 9 + 1 = 10 \rightarrow 1 $ ; - $ f(10099) = 101 $ : $ 10099 + 1 = 10100 \rightarrow 1010 \rightarrow 101 $ . We say that some number $ y $ is reachable from $ x $ if we can apply function $ f $ to $ x $ some (possibly zero) times so that we get $ y $ as a result. For example, $ 102 $ is reachable from $ 10098 $ because $ f(f(f(10098))) = f(f(10099)) = f(101) = 102 $ ; and any number is reachable from itself. You are given a number $ n $ ; your task is to count how many different numbers are reachable from $ n $ .

输入输出格式

输入格式


The first line contains one integer $ n $ ( $ 1 \le n \le 10^9 $ ).

输出格式


Print one integer: the number of different numbers that are reachable from $ n $ .

输入输出样例

输入样例 #1

1098

输出样例 #1

20

输入样例 #2

10

输出样例 #2

19

说明

The numbers that are reachable from $ 1098 $ are: $ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1098, 1099 $ .

Input

题意翻译

## 题目描述 按照如下方式定义函数 $f(x)$ : 给 $x$ 加上 $1$,不断移除结果的末尾 $0$。例如: - $ f(599) = 6 $ : $ 599 + 1 = 600 \rightarrow 60 \rightarrow 6 $ ; - $ f(7) = 8 $ : $ 7 + 1 = 8 $ ; - $ f(9) = 1 $ : $ 9 + 1 = 10 \rightarrow 1 $ ; - $ f(10099) = 101 $ : $ 10099 + 1 = 10100 \rightarrow 1010 \rightarrow 101 $ . 如果对整数 $x$ 做若干次(可能 $0$ 次)函数 $f$ 的操作能够得到 $y$,那么我们说 $x$ 可以到达 $y$。 给定整数 $n$,请你求出 $n$ 可以到达多少个不同的整数。 ## 输入格式 一个整数 $n$($1≤n≤10^9$)。 ## 输出格式 输出一个整数,表示 $n$ 可以到达的不同的整数的数量。

加入题单

算法标签: