ФИПИ · ОГЭ · все форматы ответа · 1585 заданий
Тип задачи: Анализ программы с ветвлением.
| КЭС: | 3.2 Язык программирования (Python, C++, Паскаль, Java, C#, Школьный Алгоритмический Язык). Система программирования: редактор текста программ, транслятор, отладчик. Переменная: тип, имя, значение. Целые, вещественные и символьные переменные. Оператор присваивания. Арифметические выражения и порядок их вычисления. Операции с целыми числами: целочисленное деление, остаток от деления. Ветвления. Составные условия (запись логических выражений на изучаемом языке программирования). Нахождение минимума и максимума из двух, трёх и четырёх чисел. Решение квадратного уравнения, имеющего вещественные корни. Цикл с условием. Алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел. Разбиение записи натурального числа в позиционной системе с основанием, меньшим или равным 10, на отдельные цифры. Цикл с переменной. Алгоритмы проверки делимости одного целого числа на другое, проверки натурального числа на простоту |
| Тип ответа: | Краткий ответ |
Ответ: 3
1. Разберём условие программы.
Сообщение YES выводится, когда условие истинно, а NO — когда оно ложно. Запишем проверяемое выражение словами:
(s больше A ИЛИ t больше 12).
Операция И требует истинности обеих частей, ИЛИ — хотя бы одной; НЕ меняет истину на ложь и наоборот. Сначала выполняются сравнения и действия в скобках, затем соответствующие логические операции. Равенство граничному числу проверяем особенно внимательно.
2. Определим зависимость от A.
NO получается только тогда, когда обе части ИЛИ ложны: t ≤ 12 И s ≤ A. Условие t ≤ 12 выполняется в запусках 1, 2, 3, 4, 5, 6, 7, 8. Остальные всегда дают YES и от A не зависят.
Выпишем значения s из подходящих запусков по возрастанию, сохраняя повторения:
−12, −10, 2, 2, 6, 9, 11, 13.
Число сообщений NO равно количеству чисел этого списка, не превосходящих A. Повторы относятся к разным запускам, поэтому каждый учитывается отдельно. Число YES равно 9 минус число NO.
Требуемое количество сообщений NO — 5; соответствующее количество NO — 5. A должно быть не меньше числа на месте 5, равного 6, и меньше числа на месте 6, равного 9. Для целого A это даёт 6 ≤ A ≤ 8.
3. Выберем ответ из найденного диапазона.
Нужно количество целых значений, включая обе границы. Оно равно 8 − (6) + 1 = 3. Диапазон учитывает все целые значения A, в том числе отрицательные; произвольного ограничения поиска нет.
4. Проверка.
Подставим A = 6 в исходную программу и проверим каждый запуск:
Запуск 1: (13; 2) — вывод YES.
Запуск 2: (11; 12) — вывод YES.
Запуск 3: (−12; 12) — вывод NO.
Запуск 4: (2; −2) — вывод NO.
Запуск 5: (−10; −10) — вывод NO.
Запуск 6: (6; −5) — вывод NO.
Запуск 7: (2; 8) — вывод NO.
Запуск 8: (9; 10) — вывод YES.
Запуск 9: (1; 13) — вывод YES.
Получено 4 сообщения YES и 5 сообщений NO; требуемых NO — 5. При соседнем A = 5 сообщений NO уже 4. При соседнем A = 9 сообщений NO уже 6. При увеличении A число NO не уменьшается, а число YES не увеличивается, поэтому за границами найденного диапазона нужное количество не появится снова. Ответом служит количество целых A, а выбранное для проверки значение не заменяет этот ответ.
Ответ: 3.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании OGEINF5B58D0.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.