e-olymp 909. Количество слов

Задача

Определить количество слов в заданном фрагменте текста.

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

В одной строке задан фрагмент текста на английском языке, количество символов в котором не превышает 250. Гарантируется, что в тексте отсутствуют тире, дефисы, цифры и числа.

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

Вывести количество слов в фрагменте текста.

Тесты

Ввод Вывод
1 Hello world! 2
2 Hello world! Hello,     country! 4
3 What do you think?.. 4
4 How are you? 3
5 Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it. 43

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

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

Решение

Считаем текст до пробела как слово. При помощи цикла while считываем по слову пока в потоке есть текст. И подсчитываем количество слов, используя счётчик count.

Ссылки

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] соответственно.

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

  1. Для [latex]n = 1[/latex] [latex]countSix(10^1) = 1[/latex].
  2. Для [latex]n ≤ k[/latex] $countSix(10^{k}) = k \cdot 10^{k-1}$
  3. Для [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)