Для натуральных n и k введём обозначения \(f(n) = n - S(n)\) и \(f_k(n) = f(f(...(n)...))\) (где \(f\) применяется \(k\) раз). При увеличении числа \(n\) на 1, сумма его цифр \(S(n)\) либо увеличивается на 1 (если \(n\) не заканчивается на 9), либо уменьшается. Это означает, что функция \(f\) не убывает, и при этом выполняется неравенство \(f(n + 10) > f(n)\) для всех \(n\).
Первый способ. Выберем такое натуральное \(d\), что \(10d > 20d(n + 1)\), и положим \(k = 10d\). Определим \(b_0 = 10k - 1\) и \(c_0 = 10k - k\), а также \(b_i = f^i(b_0)\) и \(c_i = f^i(c_0)\). Нам нужно доказать, что выполняется неравенство \(b_n > c_n > b_{n+1}\). (*)
Поскольку \(S(c_0) \leq 9k\), по индукции получаем, что \(c_i \geq 10k - k - 9ki\). Для \(i \leq n + 1\) имеем \((9i + 1)k \leq 10ki \leq 10d + 1(n + 1) < 10^{2d}\). Это означает, что в числе \(c_i\) хотя бы \(k - 2d\) первых цифр равны девяткам. Следовательно, \(S(c_i) \geq 9(k - 2d)\), откуда, опять же по индукции, следует, что \(c_i \leq 10k - k - 9(k - 2d)i\). Таким образом, мы получаем оценки: \(10k - (9i + 1)k \leq c_i \leq 10k - k - 9(k - 2d)i\).
Аналогично можно получить оценки для \(b_i\): \(10k - 9ki - 1 \leq b_i \leq 10k - 1 - 9(k - 2d)i\). Для доказательства неравенства \(c_n < b_n\) достаточно проверить, что \(10k - k - 9(k - 2d)n < 10k - 9kn - 1\), то есть \(k > 18dn + 1\). Это верно по выбору \(d\). Чтобы доказать неравенство \(b_{n+1} < c_n\), достаточно проверить, что \(10k - 1 - 9(k - 2d)(n + 1) < 10k - (9n + 1)k\), что эквивалентно \(8k + 1 > 18d(n + 1)\), и это также верно.
Так как \(c_n = f^n(c_0)\), число \(c_n\) является \(n\)-хорошим. В то же время, если \(x \leq b_0\), то \(f^{n+1}(x) \leq f^{n+1}(b_0) = b_{n+1} < c_n\). Если же \(x > b_0\), то \(f(x) \geq f(10k) = b_0\), и, следовательно, \(f^{n+1}(x) \geq f^n(b_0) = b_n > c_n\). Таким образом, \(c_n\) не является \((n+1)\)-хорошим.
Второй способ. Предположим противное: любое \(n\)-хорошее число \(x\) является \((n+1)\)-хорошим. Это означает, что \(x = f^{n+1}(y)\) для некоторого \(y\). Тогда число \(f(y)\) также является \(n\)-хорошим, а значит, и \((n+1)\)-хорошим; из этого следует, что \(x\) является \((n+2)\)-хорошим. Аналогично можно показать, что любое \(n\)-хорошее число является \((n+k)\)-хорошим для всех натуральных \(k\); назовём такое число просто хорошим.
Выберем натуральное \(k > 3 \cdot 10^n\) и оценим количество \(D_k\) хороших \(k\)-значных чисел двумя способами.
- Для каждого числа \(y \in [2 \cdot 10^{k-1}, 10^k)\) число \(g(y) = f^n(y)\) является хорошим. Кроме того, \(g(y) \geq y - 9kn \geq y - 10^{k-1} \geq 10^{k-1}\), то есть \(g(y)\) — хорошее \(k\)-значное число. С другой стороны, уравнение \(f(x) = a\) имеет не более 10 решений для любого \(a\), следовательно, уравнение \(g(y) = a\) имеет не более \(10^n\) решений.
- Пусть \(x\) — хорошее \(k\)-значное число. Тогда \(x = f^{10^k}(y)\) для некоторого \(y\). Поскольку \(f^{10^k}(y) \leq y - 10^k\), число \(y\) должно быть хотя бы \((k+1)\)-значным. Пусть \(s\) — наименьшее число, для которого \(f^s(y)\) является \(k\)-значным. Тогда \(f^{s-1}(y) \geq 10^k\), и, следовательно, \(f^s(y) = f(f^{s-1}(y)) \geq f(10^k) = 10^k - 1\). Таким образом, \(f^s(y) = 10^k - 1\), что означает, что любое \(k\)-значное хорошее число может быть представлено в виде \(f^t(10^k - 1)\) для некоторого \(t\).
Теперь покажем, что число \(f^t(10^k - 1)\) может быть \(k\)-значным лишь при определённых условиях, что приведёт к противоречию с оценкой из предыдущего пункта. Положим \(b_0 = 10^k - 1\) и \(b_i = f^i(b_0)\). Достаточно доказать, что \(b_{t_0} < 10^k - 1\).
Предположим противное; тогда все числа \(b_i\) при \(i \leq t_0\) являются \(k\)-значными. Оценим количество таких индексов \(i < t_0\), для которых \(b_i - b_{i+1} < k\) (то есть \(S(b_i) < k\)). Цифры любого такого числа \(b_i\) образуют последовательность из \(k\) неотрицательных целых чисел с суммой, не превышающей \(k - 1\). Однако существует ровно \(\binom{k - 1 + k - 1}{k - 1}\) таких последовательностей (это легко выводится из задачи 30719 б). Значит, и требуемых индексов не больше, чем \(\binom{k - 1 + k - 1}{k - 1}\).
Итак, в последовательности \(b_0, b_1, \ldots, b_{t_0}\) следующее число меньше предыдущего хотя бы на \(k\) как минимум в \(t_0 - 22k - 1\) случаях. Заметим, что \(k \cdot 22k - 1 \leq 10^k\). Поэтому \(b_{t_0} \leq b_0 - (t_0 - 22k - 1)k \leq 10^k - 10^k = 0\). Противоречие.