Ctrl K

Подсчёт цифры на отрезке

Сложная
Выпишите подряд все целые числа от lo до hi включительно в обычной десятичной записи, без ведущих нулей. Сколько раз среди всех выписанных знаков встретится цифра digit? Если цифра встречается в числе несколько раз, считается каждое вхождение: в 22 двойка встречается дважды. Перебор всех чисел здесь слишком медленный — отрезок может содержать сотни миллионов чисел.
Пример 1
digit=2, lo=18, hi=23 → 5

Двойки есть в 20, 21, 22 (дважды) и 23 — всего 5.

Пример 2
digit=0, lo=1, hi=30 → 3

Нули встречаются только в 10, 20 и 30. Ведущие нули не пишутся, поэтому, например, 7 не считается за 07.

Ограничения
  • 0 ≤ digit ≤ 9
  • 1 ≤ lo ≤ hi ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько раз написана единица СложнаяДегустаторы и испорченная бочка СложнаяДве группы с одинаковым средним СложнаяИспытания прототипов на падение СложнаяЧисла с рабочих клавиш Сложная
загружаем Python…
Вход
digit=2, lo=18, hi=23
Ожидается
5

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 102 теста на сервере, включая скрытые.