Вопрос задан 01.03.2019 в 10:38. Предмет Информатика. Спрашивает Федоров Степан.

Вводится последовательность натуральных чисел, не превосхо-дящих 20000. Ноль – признак конца.

Требуется вывести максимальное из произведений двух элементов последовательности, которое делится на 26.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кузьменко Николай.
Программа на паскале:

const
  MAX_N = 20001;

var
  a: array[1..MAX_N] of integer;
  n, i, j, p, maxp: integer;
  
begin
  i := 1; 
  read(a[i]);
  while a[i] <> 0 do
  begin
    inc(i);
    read(a[i]);
  end;
  n := i - 1;
  maxp := 0;
  for i := 1 to n do
    for j := 1 to n do
    begin
      p := a[i] * a[j];
      if (p mod 26 = 0) and (p > maxp) then 
        maxp := p;
    end;
  if maxp = 0 then writeln('Not found')
              else writeln(maxp);
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи мы можем использовать два указателя, которые будут проходить по последовательности чисел одновременно. Начальные значения указателей будут 0 и 1.

Мы будем перемножать числа, на которые указывают указатели, и проверять, делится ли полученное произведение на 26. Если да, то мы обновим максимальное произведение, если оно больше текущего максимального.

Затем мы передвинем первый указатель на следующий элемент последовательности и повторим процесс. Если первый указатель достигнет конца последовательности, мы передвинем второй указатель на следующий элемент и снова начнем проходить по последовательности с первым указателем.

Продолжим этот процесс до тех пор, пока второй указатель не достигнет конца последовательности. В конце мы выведем максимальное произведение, которое делится на 26.

Вот пример кода на Python, реализующий этот алгоритм:

```python sequence = [] number = int(input("Введите число: "))

while number != 0: sequence.append(number) number = int(input("Введите число: "))

max_product = 0 pointer1 = 0 pointer2 = 1

while pointer2 < len(sequence): product = sequence[pointer1] * sequence[pointer2] if product % 26 == 0 and product > max_product: max_product = product pointer1 += 1 if pointer1 == pointer2: pointer2 += 1 pointer1 = 0

print("Максимальное произведение, которое делится на 26: ", max_product) ```

Таким образом, данный код будет считывать последовательность чисел до тех пор, пока не будет введен 0. Затем он будет находить максимальное произведение двух элементов последовательности, которое делится на 26, и выводить его.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос