e-olymp 908. Те, что делятся на 6

Задача: Те, что делятся на 6

Для [latex]N[/latex] целых чисел определить сумму и количество положительных чисел, которые делятся на 6 без остатка.

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

В первой строке задано количество чисел [latex]N[/latex]$\left(1 \leq N \leq 100\right)$, в следующей строке через пробел заданы сами числа, значения которых по модулю не превышают $10000$.

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

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

Тесты

Ввод Вывод

3

12 15 18

2 30
4

-10 -15 42 -24

1 42
2

6 0

1 6
3

-6 -12 -32

0 0

Решение

Заводим 2 переменные: сумму и количество. Каждый раз, когда мы читаем число, проверяем положительно ли оно и делится ли на 6 (Обычно желательно сначала проверять наимение вероятное условие, т.к. программа реже будет лишний раз проверять второе условие и, как следствие, сделает меньше действий, но в этой задачи это особой роли не играет из-за малого ввода), если оба условия выполняются, добавляем к счетчику 1, а к сумме введенное число. По окончанию ввода выводим сумму и количество через пробел.

Ссылки

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

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

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

Чтобы рассчитать необходимое количество краски, требуется узнать, сколько цифр будет написано. Напишите программу, которая определяет, сколько всего цифр будет использовано в номерах подписанных ступенек.

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

Одно целое число $n\;\left(1 \leq n \leq 10^{18}\right)$ — количество ступеней эскалатора.

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

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

Тесты

Ввод Вывод
1000000000000000000 1788888888888888908
242 67
250 67
999 292
1000 293
1 1
2 2

Решение

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

Ссылки

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

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

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

Тесты

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

Решение

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

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

Ссылки