Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 100000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, не делящихся нацело на 15, а затем заменяет каждый элемент, не делящийся нацело на 15, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть.
Описание входных и выходных данных
В 30 строках записано одно натуральное число, не превосходящее 100000.
В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.
Требуется написать эффективную по времени и памяти программу. Перед текстом программы обязательно опишите алгоритм решения. Укажите использованный язык программирования и его версию.
Answers & Comments
program massiv;
var A: array [1..30] of longint;
var i,min: longint;
begin
for i:=1 to 30 do
begin
write('A[',i,']=');
readln(A[i]);
end;
writeln('исходный массив');
for i:=1 to 30 do
write(A[i],' ');
writeln;
min:=A[1];
for i:=1 to 30 do
if (A[i] mod 15<>0) and (A[i]<min) then
min:=A[i];
for i:=1 to 30 do
if A[i]mod 15<>0 then
A[i]:=min;
writeln('новый массив');
for i:=1 to 30 do
writeln(A[i],' ');
end.