Задание 6. ОГЭ по информатике. 9 класс.
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг | var s, t: integer; |
Бейсик | Python |
DIM s, t AS INTEGER | s = int(input()) |
C++ | |
#include <iostream> |
Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t):
(15, 4), (11, 5), (1, 10), (11, 3), (7, 4), (11, 5), (12, 7), (17, 10), (27, 10).
Укажите наибольшее значение параметра А, при котором программа вывела «YES» 2 раза.
Как будем решать задачу
- Сохраним пары чисел s и t в списках.
- Запустим внешний цикл по предполагаемому значению параметра A (промежуток можно выбрать экспериментально, но в данной задаче понятно, что параметр A - это остаток от деления числа s на число t, и исходя из чисел s и t, параметр A может быть числом из промежутка [0, 9]).
- Во внешнем цикле по параметру A обнулим счетчик выводов YES (переменная p) и запустим внутренний цикл по 9 запускам (по сути по длине списка s (или t)).
- Обратимся к запуску как s[i], t[i].
- Если условие s[i] % t[i] == A выполняется, то увеличим счетчик выводов YES на 1, в противном случае не будем изменять значение счетчика p.
- Во внешнем цикле проверим условие p = 2, если оно выполняется, выведем число A.
Программа решения задачи на языке Python
y = [(15, 4), (11, 5), (1, 10), (11, 3), (7, 4), (11, 5), (12, 7), (17, 10), (27, 10)]
s, t = map(list,zip(*y))
#print(s,t)
#эту часть кода можно было бы записать вручную
# s = [15, 11, 1, 11, 7, 11, 12, 17, 27]
# t = [4, 5, 10, 3, 4, 5, 7, 10, 10]
for A in range(0,10):
p = 0
for i in range(9):
if (s[i] % t[i] == A):
p = p + 1
else:
p = p
if p==2:
print(A)
Результат запуска программы
3
7
Ответ: наибольшее число A = 7