Задача. Подсчитайте количество счастливых билетов, у которых сума первых трёх цифр равна [latex]N(N \leq 27)[/latex].
Счастливым билетом называется билет с шестизначным номером, у которого сумма первых трёх цифр равна сумме трёх последних.
Тесты
Число [latex]N[/latex] | 3 | 27 | 26 | 1 | 10 |
Количество билетов | 100 | 1 | 9 | 9 | 3969 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> using namespace std; int main() { int N, c = 0; cin >> N; for ( int i = 0; i < 10; i++ ) //цикл, перебирающий все варианты первой цифры трехзначного числа { for ( int j = 0; j < 10; j++ ) //вложенный цикл, перебирающий все варианты второй цифры { if ( N - i - j >= 0 && N - i - j < 10 ) //условие для третьей цифры { c++; } //подсчет подходящих номеров } } cout << c*c; //увеличение количества в c раз для шестизначного числа return 0; } |
Алгоритм
Любой шестизначный номер мы можем представить как 2 трехзначных номера.
Рассмотрим все варианты трехзначных номеров. Две первые цифры такого номера могут быть любыми. Переберем все их комбинации с помощью двух вложенных циклов. Для третьей цифры введем специальное условие. Она должна быть результатом вычитания двух первых цифр из [latex]N[/latex], а также быть именно цифрой, то есть меньшей 10.
Когда в цикле встречается подходящая комбинация, мы увеличиваем счетчик [latex]c[/latex] на 1. Поскольку на самом деле номер шестизначный, то каждой удачной комбинации в первой его половине будет соответствовать [latex]c[/latex] комбинаций во второй. Следовательно, искомое число счастливых билетов будет равно [latex]c \cdot c[/latex].
Хорошо. Но
— в условии тоже нужно использовать latex для N (N ≤ 27)
— нужно написать ключевые слова (tags) — наиболее важные слова и словосочетания из Вашего текста
— когда пишите программу, используйте клавишу табуляция для отступов (или по крайней мере 2 — 4 пробела)
— определитесь, где будете ставить пробел в коде программы — до скобки, после скобки или сразу оба.
Спасибо, исправила.
Хорошо. Молодец.
— В математике для умножения принято использовать точку (\cdot), а не звёздочку. — [latex]c \cdot c[/latex].
— Я не могу раскрыть закономерности в Вашей расстановке пустых строк. Может удалим часть? Только те, для которых у Вас тоже нет объяснения.
— В таблице есть «Число N». Мы ведь договорились про latex?
Да, Игорь Евгеньевич. Спасибо. Исправила.
Спасибо, Женя. Зачтено.