e-olymp 128. Счастливые билеты

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

Задача

Подсчитайте количество счастливых билетов, у которых сума первых трёх цифр равна [latex]N[/latex].

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

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

В единственной строке задано натуральное число [latex] N (N ≤ 27). [/latex]

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

Единственное число — количество счастливых билетов.

Тесты

Входные данные (число [latex] N [/latex]) Выходные данные (число билетов)
1. 1 9
2. 27 1
3. 0 1
4. 10 3969
5. 3 100

Код программы

Решение
Любой шестизначный номер можно представить как 2 трехзначных номера.

Для решения задачи рассмотрим все варианты трехзначных номеров. Две первые цифры такого номера могут быть любыми. Переберем все их комбинации с помощью двух  циклов. А для определения третьей цифры будем использовать специальное условие. Она должна быть результатом вычитания двух первых цифр из [latex]N[/latex], и быть именно цифрой, то есть меньше 10.

Когда в цикле встречается подходящая комбинация, счетчик [latex]c[/latex] увеличивается на 1. Так как номер шестизначный, а счетчик [latex]c[/latex] подсчитывает удачные комбинации для трехзначного числа первой части, то и для трехзначного числа второй части он будет соответствовать. Следовательно, окончательное число комбинаций будет равно [latex]c \cdot c[/latex].

Оригинальное решение: cpp.mazurok.com.
Рабочий код для тестирования на try.haxe.org: Try Haxe !

e-olymp 5072. Подсчет количества ребер

Задача

Ориентированный граф задан матрицей смежности.
Найдите количество ребер в графе.

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

Входной файл содержит число n (1n 100) — число вершин в графе, и затем n строк по n чисел, каждое из которых равно 0 или 1 — его матрицу смежности.

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

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

Решение

30 1 11 0 1

0 1 1

6
50 1 1 1 11 0 0 0 0

1 0 0 0 0

0 0 1 0 1

1 0 0 0 0

9
21 11 1 4

Алгоритм решения

Количество ребер ориентированного графа равно количеству единиц в его матрице смежности. Поэтому просто считываем, суммируем найденные 1-цы, и выводим ответ.

Выполнение кода на Try Haxe !
Решение задачи на С++.

e-olymp 1210. Очень просто!!!

Условие
По заданным числам $n$ и $a$ вычислить значение суммы: $\sum \limits_{i=1}^{n} i⋅ a^{i}$

Входные данные
Два натуральных числа $n$ и $a$.

Выходные данные
Значение суммы.

Тесты

Входные данные Выходные данные
3 3 102
4 4 1252

Решение
Вводим числа $n$ и $a$. Далее заходим в цикл от $1$ до $n$ включительно, так как $n$-й элемент нам тоже нужно суммировать. В каждой итерации цикла возводим число $a$ в $i$-ю степень, умножаем на $i$ и все это прибавляем к переменной $sum$. После завершения цикла выводим переменную $sum$.

Try Haxe !

5.13. Цикл for

По материалам официального руководства по Haxe 3

Haxe не поддерживает традиционные циклы $for$ из языка C. Здесь ключевое слово $for$ предполагает следующий синтаксис: вначале идет открывающая скобка $($, затем идентификатор переменной, ключевое слово $in$ и произвольное выражение, используемое в качестве итерационной коллекции. После закрывающей скобки $)$ следует тело цикла.

Программист при написании кода гарантирует, что тип $e1$ является итерируемым. Обычно это происходит в случае, если он содержит метод типа $iterator$, возвращающий $Iterator<T>$, или если он сам — $Iterator<T>$.

Переменная $v$ доступна внутри тела цикла $e2$ и хранит значения отдельных элементов коллекции $e1$.

У Haxe есть специальный оператор диапазона для итерации в пределах интервалов. Это бинарный оператор, который получает на вход два операнда типа $Int$: $min…max$, который возвращает экземпляр $IntIterator$, который итерирует от $min$ (включительно) до $max$ (не включительно). Отметим, что $max$ не должен быть меньше $min$.

Тип выражения $for$ — всегда $Void$, что означает, что оно не имеет собственного значения и не может быть использовано в качестве правой части выражения.

На управляющий поток цикла можно повлиять при помощи выражений $break$ и $continue$.

В общем, можно сказать, что цикл $for$ в Haxe напоминает циклы $foreach$ в некоторых других языках.

Пример: Программа, которая вычисляет и выводит значения $2^i$, где $i$ изменяется от 1 до 20.

Протестировать код можно здесь: Try Haxe !