e-olymp 8380. Эскалатор

Задача: Эскалатор

В Баку вскоре откроется новая станция метро. Эскалатор в метро состоит из n ступенек, пронумерованных целыми числами от 1 до n. На ступеньках с номерами, кратными десяти, а также на первой и последней ступеньке, пишут их номера. При записи номера на каждую записанную цифру уходит одно и то же количество краски.

Чтобы рассчитать необходимое количество краски, требуется узнать, сколько цифр будет написано. Напишите программу, которая определяет, сколько всего цифр будет использовано в номерах подписанных ступенек.
Входные данные
Одно целое число n (1n1018) — количество ступеней эскалатора.

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

Выведите суммарное количество цифр в номерах подписанных ступенек.

Тесты

ВводВывод
10000000000000000001788888888888888908
24267
25067
999292
1000293
11
22

Решение

Идея решения заключается в том чтобы искать количество помеченных ступенек на  отрезках $10$-$99$,$100$-$999$,…,\(10^{x}\)-\((10^{x+1}-1)\). Легко понять что помеченных ступенек \(9\cdot10^{x}\). Это суть метода, а остальное это реализация, которую я покажу в программе.

Ссылки

e-olymp 945. Без средней

Задача: Без средней

Записать заданное трехзначное натуральное число без средней цифры.
Входные данные
Одно натуральное трехзначное число.
Выходные данные
Вывести трехзначное число без средней цифры.

Тесты

Ввод Вывод
157 17
242 22
578 58

Решение

Есть как минимум два способа решения данной задачи. Первый очень простой — нам просто нужно вывести 1-ю цифру и 3-ю. Таким образом мы выведем число без средней.

Второй способ сложнее и выполняется дольше, но он использует линейные вычисления. Мы вводим а, затем получаем разряд сотен умножаем его на 10, потом единиц и суммируем. Таким образом мы получим число, у которого разряд единиц от предыдущего а десятки от сотен предыдущего. Таким образом мы исключаем среднее.

Ссылки