Присоединиться

11 класс·высокий уровень

Количество чисел известно, но может быть очень велико. Затем передаётся

Условие

По каналу связи передаётся последовательность положительных целых чисел, все числа не превышают 1000. Количество чисел известно, но может быть очень велико. Затем передаётся контрольное значение последовательности — наибольшее число R, удовлетворяющее следующим условиям:

  1. R — произведение двух различных переданных элементов последовательности («различные» означает, что не рассматриваются квадраты переданных чисел, произведения различных элементов последовательности, равных по величине, допускаются);

  2. R делится на 33. Если такого числа R нет, то контрольное значение полагается равным 0. В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет проверять правильность контрольного значения. Программа должна напечатать отчёт по следующей форме: Вычисленное контрольное значение: ... Контроль пройден (или — Контроль не пройден) Перед текстом программы кратко опишите используемый Вами алгоритм решения. На вход программе в первой строке подаётся количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. В последней строке записано контрольное значение. Пример входных данных: 6550337997 960 33000 Пример выходных данных для приведённого выше примера входных данных: Вычисленное контрольное значение: 33000 Контроль пройден

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. Произведение двух чисел делится на 33, если: · один из сомножителей делится на 33 (второй может быть любым) либо · ни один из сомножителей не делится на 33, причём один из сомножителей делится на 11, а другой — на

Осталось ещё 4 шага

  1. | Поэтому программа, вычисляющая кодовое…

  2. and (dat > M11) thenM11 : = dat; if ((dat mod…

  3. and (dat > М3) thenM3 : = dat; if (dat mod…

  4. and (dat > M33) then begin if M33 > MAX then…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»