Решение задачи Достижимые числа с Codeforces
Без пояснения   Просмотров: 178
Давайте объявим функцию f(x) следующим образом: добавим 1 к x, затем, пока у результата последняя цифра является нулем, будем удалять этот ноль. Например,
f(599)=6: 599+1=600→60→6;
f(7)=8: 7+1=8;
f(9)=1: 9+1=10→1;
f(10099)=101: 10099+1=10100→1010→101.
Назовем число y достижимым из числа x, если мы можем применить функцию f к x несколько (возможно, ноль) раз, и в результате мы получим y. Например, число 102 достижимо из числа 10098: f(f(f(10098)))=f(f(10099))=f(101)=102; и любое число является достижимым из самого себя.
Вам дано число n; посчитайте количество различных чисел, достижимых из n.
f(599)=6: 599+1=600→60→6;
f(7)=8: 7+1=8;
f(9)=1: 9+1=10→1;
f(10099)=101: 10099+1=10100→1010→101.
Назовем число y достижимым из числа x, если мы можем применить функцию f к x несколько (возможно, ноль) раз, и в результате мы получим y. Например, число 102 достижимо из числа 10098: f(f(f(10098)))=f(f(10099))=f(101)=102; и любое число является достижимым из самого себя.
Вам дано число n; посчитайте количество различных чисел, достижимых из n.