var a: array[1..m, 1..n] of integer; i, j, t: integer; p: longint;
begin Randomize; Writeln('Исходный массив'); p := 1; for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(19) - 9; Write(a[i, j]:3); if (abs(a[i, j]) < 1) or (abs(a[i, j]) > 5) then p := p * a[i, j] end; Writeln end; Writeln('Произведение элементов с модулем вне [1;5] равно ', p) end.
Тестовое решение: Исходный массив -8 2 7 -3 -8 5 1 -4 -3 6 9 6 Произведение элементов с модулем вне [1;5] равно 145152
Решение можно получить, рассуждая следующим образом. Максимальное количество возможных сложений равно количеству команд и это дает в результате 1+1+1+1+1+1=6, но никак не 45. Разница большая, поэтому её надо преодолевать пр умножения. Пойдем от обратных операций - будем из 45 получать 1 путем деления на 3 и вычитания 1. 1) 45/3=15 2) 15/3=5 3) 5 на 3 не делится, вычитаем 1 и получаем 4. 4) 4 на 3 не делится, вычитаем 1 и получаем 3. 5) 3/3=1 - мы пришли к 1 за 5 команд. Теперь осталось записать в обратном порядке команды калькулятора. Мы должны получить следующие шаги: 1) 1х3=3 2) 3+1=4 3) 4+1=5 4)5х3=15 5) 15х3=15. ответ: 21122
m = 4;
n = 3;
var
a: array[1..m, 1..n] of integer;
i, j, t: integer;
p: longint;
begin
Randomize;
Writeln('Исходный массив');
p := 1;
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := Random(19) - 9;
Write(a[i, j]:3);
if (abs(a[i, j]) < 1) or (abs(a[i, j]) > 5) then p := p * a[i, j]
end;
Writeln
end;
Writeln('Произведение элементов с модулем вне [1;5] равно ', p)
end.
Тестовое решение:
Исходный массив
-8 2 7
-3 -8 5
1 -4 -3
6 9 6
Произведение элементов с модулем вне [1;5] равно 145152
Максимальное количество возможных сложений равно количеству команд и это дает в результате 1+1+1+1+1+1=6, но никак не 45. Разница большая, поэтому её надо преодолевать пр умножения.
Пойдем от обратных операций - будем из 45 получать 1 путем деления на 3 и вычитания 1.
1) 45/3=15 2) 15/3=5 3) 5 на 3 не делится, вычитаем 1 и получаем 4. 4) 4 на 3 не делится, вычитаем 1 и получаем 3. 5) 3/3=1 - мы пришли к 1 за 5 команд.
Теперь осталось записать в обратном порядке команды калькулятора.
Мы должны получить следующие шаги: 1) 1х3=3 2) 3+1=4 3) 4+1=5 4)5х3=15 5) 15х3=15.
ответ: 21122