Категория B8 • задача №1
Условие задачи
Дано:
ниже на 2-х языках программирования записан алгоритм. Получив на вход натуральное число n, этот алгоритм печатает одно число i и одно слово «Да» или «Нет».
Вопрос:
укажите минимальное из таких чисел n, при вводе которых алгоритм печатает число 4 и слово «Да». Также известно, что все цифры числа n уникальные (цифра 0 – запрещенная цифра).
Решение
I этап: детальный анализ заданного кода.
Сразу отмечу тот факт, что за основу был взять язык программирования Pascal по ряду причин:
его лексика проще, чем лексика языка программирования "Чистый С";
строгая типизация;
прекрасная внутренняя структурная группировка (раздел констант, раздел переменных, раздел типов данных и пр.).
Промежуточный вывод: программа проверяет, совпадает ли сумма цифр, стоящих на четных и нечетных позициях. Также, входное натуральное число состоит из 4-х разрядов.
II этап: подбор входных данных.
можно выделить несколько умозаключений:
число должно быть минимальным;
число должно состоять из 4-х цифр;
цифры числа не должны повторяться (причем ни одна из них не может быть равной 0);
сумма цифр, стоящих на четных и нечетных позициях должна совпадать.
Пусть abcd - заданное 4-х позиционное число, следовательно:
abcd ⇒ min;
a, b, c, d ⇒ 4 цифры;
a ≠ b ≠ c ≠ d ≠ 0;
a + c = b + d.
Очевидно, что минимальное число, у которого нет ни одного разряда, равного 0 должно состоять из цифр: 1, 2, 3 и 4. Числом, удовлетворяющим всем критериям, является число равное 1243.
III этап: точечное тестирование программы.
Для тестирования создадим процессинговую таблицу переменных, в которой будут храниться значения всех переменных программы, а также результат проверки условных выражений:
Промежуточный вывод: как видно из заполненной процессинговой таблицы, число 1243 удовлетворяет все требованиям.
Вывод: |
1234 - минимальное число, при вводе которого алгоритм печатает на экране число 4-ре и слово "Да"
|
Резюме
выбрали наиболее подходящий из предложенных языков программирования;
детально разобрали каждую строку программного кода;
на основе сделанных выводов подобрали подходящее число;
провели точечное тестирование программы.
Ответ: |
1234 |
Комментарии