e-olymp 7228. Сколько шестерок?

Задача

Сколько раз будет использована цифра $6$, если записать подряд последовательные натуральные числа от $a$ до $b$?

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

Два натуральных числа $a$ и $b$ [latex](1 ≤ a, b ≤ 10^9)[/latex].

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

Количество цифр $6$ в последовательных натуральных числах от $a$ до $b$.

Тесты

 

Ввод Вывод
1 5 256 46
2 56 110 16
3 27357 43577 5852
4 368325775 56 296285528
5 584937543 984938576 420000314

Код

Решение

Выписав и посчитав количества шестёрок от $1$ до [latex]10, 100, 1000, …[/latex] Мы обнаружим закономерность, они равны [latex]1, 20, 300, …[/latex] соответственно.

Доказательство по мат.индукции:

при [latex]n = 1[/latex]:

[latex]countSix(10^1) = 1[/latex]

при [latex]n ≤ k[/latex]:

$countSix(10^{k}) = k \cdot 10^{k-1}$

при [latex]n = k+1[/latex]:

$countSix(10^{k+1}) = k\cdot10^{k-1}\cdot10+10^k = (k+1)\cdot10^k$

Разберёмся, как их нужно комбинировать.
Для этого в цикле пройдёмся по каждой из цифр числа и полученные результаты просуммируем.
В ответ мы выдадим разность количества шестерок без внешней границы.

Ссылки

e-olymp 1326. В хоккей играют настоящие…

Задача

prb1326 Лесные жители решили провести хоккейный турнир между $N$ командами. Сколькими способами могут быть распределены комплекты золотых, серебряных и бронзовых медалей, если одно призовое место может занять только одна команда?

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

В единственной строке расположено единственное натуральное число $N$, не превышающее 100.

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

Единственное число — искомое количество способов.

Тесты

Ввод Вывод
1 1 1
2 2 2
3 3 6
4 5 60
5 56 166320
6 100 970200

Код

Решение

Чтобы рассчитать количество способов воспользуемся формулой размещения из комбинаторики $A_N^k = \frac{N!}{(N−k)!}$, где $k = 3$, так как существует всего 3 призовых места и следовательно комплекты медалей можно распределить $N$$(N — 1)$$(N — 2)$ способами, при $N >= 3$. При $N < 3$ существует всего $N$ способов распределения, так как команд меньше чем призовых мест.

Ссылки

e-olymp
ideone

e-olymp 990. 12345

Задача

Вывести цифры 1, 2, 3, 4, 5 каждое в отдельной строке.

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

Входные данные отсутствуют.

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

Выведите цифры 1, 2, 3, 4, 5 каждое в отдельной строке как показано в примере.

Тесты

ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1
2
3
4
5

Код. Вариант 1

Решение

В решении используется функция $endl$ для перехода на новую строку. Также эта фунция очищает поток, то есть является гарантией того, что данные попадут непосредственно в поток в нужное время.

Код. Вариант 2

Решение

В решении используется символ перехода на новую строку ‘\n’.

Ссылки

e-olymp
ideone(Решение 1)
ideone(Решение 2)