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

Задача. Подсчитайте количество счастливых билетов, у которых сумма первых трёх цифр равна N(N≤27). Счастливым билетом называется билет с шестизначным номером, у которого сумма первых трёх цифр равна сумме трёх последних.

Тесты

Число N 3 27 26 1 10
Количество билетов 100 1 9 9 3969

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

Код можно увидеть тут.

Алгоритм

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

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

Когда в цикле встречается подходящая комбинация, мы увеличиваем счетчик c на 1. Поскольку на самом деле номер шестизначный, то каждой удачной комбинации в первой его половине будет соответствовать c комбинаций во второй. Следовательно, искомое число счастливых билетов будет равно c^2.

Ссылка на авторское решение задачи.