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 !

Добавить комментарий