Задать свой вопрос   *более 50 000 пользователей получили ответ на «Решим всё»

Задача 16429 ...

Условие

На спутнике «Восход» установлен прибор, предназначенный для измерения солнечной активности. В течение времени эксперимента (это время известно заранее) прибор каждую минуту передаёт в обсерваторию по каналу связи положительное целое число, не превышающее 1000, – количество энергии солнечного излучения, полученной за последнюю минуту, измеренное в условных единицах.

После окончания эксперимента передаётся контрольное значение –
наибольшее число R, удовлетворяющее следующим условиям:

1) R – произведение двух чисел, переданных в разные минуты;
2) R делится на 26.

Предполагается, что удовлетворяющее условиям контрольное значение
существовало в момент передачи.
В результате помех при передаче как сами числа, так и контрольное значение
могут быть искажены.

Напишите эффективную по времени и используемой памяти программу
(укажите используемую версию языка программирования, например Free
Pascal 2.6.4), которая будет проверять правильность контрольного значения.
Программа считается эффективной по времени, если время работы
программы пропорционально количеству полученных показаний прибора N,
т.е. при увеличении N в k раз время работы программы должно
увеличиваться не более чем в k раз.

Программа считается эффективной по памяти, если размер памяти,
использованной в программе для хранения данных, не зависит от числа N
и не превышает 1 килобайта.
Программа должна напечатать отчёт по следующей форме.

Вычисленное контрольное значение: …
Контроль пройден (или Контроль не пройден)

Если удовлетворяющее условию контрольное значение определить
невозможно, то выводится только фраза «Контроль не пройден».
Перед текстом программы кратко опишите используемый Вами алгоритм
решения.

На вход программе в первой строке подаётся количество чисел N ≤ 100 000.
В каждой из последующих N строк записано одно положительное целое
число, не превышающее 1000. В последней строке записано контрольное
значение.

Пример входных данных:
5
52
12
39
55
23
2860
Пример выходных данных для приведённого выше примера входных данных:
Вычисленное контрольное значение: 2860
Контроль пройден

КИМ ЕГЭ 2017 (досрочный период)

информатика 10-11 класс 6323

Решение

Решение для PascalABC

Одно из возможных решений :

var x,x2,x13,x26,max,R,N,i: integer;

begin
readln(n); x2:=0; x13:=0; x26:=0; max:=0;
for i:=1 to N do
begin
readln(x);
if (x mod 2 =0) and (x mod 13 < > 0) and (x > x2) then x2:=x
else if (x mod 13 =0) and (x mod 2 < > 0) and (x > x13) then x13:=x
else if (x mod 26 =0) and (x > x26) then x26:=x
else if (x > max) then max:=x;
end;

readln(R);

x2:=x2*x13;
x26:=x26*max;

if x2 > x26 then if x2=R then writeln('Вычисленное контрольное значение: ',x2,' Контроль пройден')
else writeln('Контроль не пройден')
else if x26=R then writeln('Вычисленное контрольное значение:',x26,'Контроль пройден')
else writeln('Контроль не пройден')
end.


Ответ: см решение

Написать комментарий

Меню

Присоединяйся в ВК