Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A если s > 10 или t > А то вывод "YES" иначе вывод "NO" все кон | var s, t, A: integer; begin readln(s); readln(t); readln(A); if (s > 10) or (t > А) then writeln('YES') else writeln('NO') end. |
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s > 10 OR t > А THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > 10) or (t > А): print("YES") else: print("NO") |
C++ | |
#include <iostream> using namespace std; int main(){ int s, t, A; cin >> s; cin >> t; cin >> A; if (s > 10 || t > А) cout << "YES" << endl; else cout << "NO" << endl; return 0; } | |
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5).
Укажите целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» четыре раза.
Правильный ответ
10
Пояснение
Решение.
Разберём условие задачи. Программа выводит «YES», если выполняется хотя бы одно из двух условий: или . В противном случае программа выводит «NO».
Нам нужно найти такое целое значение , при котором программа выведет «NO» ровно 4 раза для заданных 9 пар чисел .
Программа выводит «NO», когда оба условия ложны одновременно. То есть должно выполняться:
И .
Рассмотрим все 9 запусков и проверим первое условие :
1) : — Истина.
2) : — Ложь. (Здесь всегда будет «YES», так как ).
3) : — Истина.
4) : — Ложь. (Здесь всегда будет «YES», так как ).
5) : — Истина.
6) : — Истина.
7) : — Истина.
8) : — Истина.
9) : — Истина.
Мы видим, что в запусках №2 и №4 условие уже истинно, значит, там всегда будет «YES». Остаётся 7 запусков, где результат зависит от значения . Выпишем значения для этих 7 запусков:
Запуск 1:
Запуск 3:
Запуск 5:
Запуск 6:
Запуск 7:
Запуск 8:
Запуск 9:
Чтобы программа вывела «NO», должно выполняться . Нам нужно, чтобы это условие выполнилось ровно для 4 пар из этого списка. Упорядочим значения по возрастанию:
.
Чтобы условие выполнилось ровно для четырёх самых маленьких значений (), число должно быть:
1) Больше или равно (чтобы 10 вошло в четверку «NO»).
2) Меньше (чтобы 11 уже давало «YES»).
Единственное целое число, удовлетворяющее условию , — это .
Проверим при :
Пары с «NO» ( и ): (1, 2), (-11, -12), (10, 10), (10, 5) — итого 4 раза.
Остальные пары дадут «YES».
Ответ: 10
Источник: ФИПИ