Найти максимальное произведение чисел, кратное 14 - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Привет всем! Надо решать задачу:
Спойлер
Думал вот как: проверять каждое число на делимость 14, 7 и 2 и хранить максимальные такие числа. В конце перемножить макс кратные 7 и макс кратные 2. И макс кратные 14 умножить на самое большое число, и сравнить два произведения. При этом нужно хранить еще и самое максимальное число, не подходящее под условия кратности. Проблема в том, что если в последовательности есть 2 одинаковых числа то мы не учтем это(оно пойдет по условию кратности и не отметиться как самое большое число). Поэтому прошу помочь) Заранее спасибо)

Решение задачи: «Найти максимальное произведение чисел, кратное 14»

textual
Листинг программы
for i:=1 to n do
begin
readln(x);
if (x mod 14 = 0) and (x > max14) then begin
       if max14 > max then max:= max14;
       max14:= x
    end     
    else if x > max then max:= x;
    if (x mod 2 = 0) and (x > max2) then max2:= x
    else
      if (x mod 7 = 0) and (x > max7) then max7:= x;
  end;
 
  if max14*max > max2*max7 then 
       C:= max7*max
  else C:= max2*max7;

Объяснение кода листинга программы

В этом коде выполняется поиск максимального произведения чисел, кратных 14. В первой строке кода цикл for инициализируется, и в каждой итерации считывается значение переменной x. Если x кратно 14 и больше текущего max14, то значение переменной max14 обновляется, и проверяется, является ли оно больше текущего max. Если это так, то max обновляется. Если x больше max, то max обновляется. Если x кратно 2 и больше текущего max2, то значение переменной max2 обновляется. Если x кратно 7 и больше текущего max7, то значение переменной max7 обновляется. После завершения цикла for выполняется проверка: если произведение max14 и max больше, чем произведение max2 и max7, то значение переменной C обновляется как произведение max7 и max. В противном случае значение переменной C обновляется как произведение max2 и max7. Поэтому правильный ответ — это значение переменной C. Другие ответы неверны, потому что: — Значение переменной max обновляется только в том случае, если число x больше текущего max. — Значение переменной max14 обновляется только в том случае, если число x кратно 14 и больше текущего max14. — Значение переменной max2 обновляется только в том случае, если число x кратно 2 и больше текущего max2. — Значение переменной max7 обновляется только в том случае, если число x кратно 7 и больше текущего max7.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы