e-olymp 109. Numeration

Задача взята с сайта e-olymp.com.

Условие

Для нумерации $M$ страниц книги использовали $N$ цифр. По заданному $N$ вывести $M$ или $0$, если решения не существует. Нумерация начинается с первой страницы.

Входные данные

Единственное число $N$. В книге не более $1001$ страницы.

Выходные данные

Искомое количество страниц.

Тесты :

$N$ $8$ $21$ $22$ $113$ $999$ $1001$
$M$ $8$ $15$ $0$ $61$ $369$ $0$

Код на Haxe:

Ход решения:

Принимаем исходное количество страниц $M$ как $0$ и увеличиваем его в начале каждой итерации цикла. Цикл будет идти, пока мы не исчерпаем заданное количество цифр $N$, вычитаем необходимое их количество в зависимости от $M$:

Далее проверяем условие корректности исходных данных: если мы получили отрицательное значение $N$, значит, исходное его значение также было неверным, тогда количеству страниц присваиваем $0$:

Выйдя из цикла, выводим $M$:

Примечание: Входные данные для тестирования были заданы программно из-за определенных затруднений в использовании стандартного ввода в онлайн-среде try.haxe.org.

Ссылки:

Рабочий код для тестирования на try.haxe.org: Try Haxe !