• Предмет: Информатика
  • Автор: Никитa1Бубнов
  • Вопрос задан 3 года назад

дан массив содержащий 2021 положительных целых чисел не превышающих 15000. необходимо найти количество чётных элементов массива, не кратных 3, заменить все нечетные элементы, кратные 3 на это количество и вывести измененный массив.
Например, для исходного массива из пяти элементов 20, 89, 27, 92, 48 программа должна вывести числа 20, 89, 2, 92, 48.
Ниже приведена часть неполной программы, которую надо дополнить.

Приложения:

Никитa1Бубнов: ну да, там было и на С++ как альтернативный способ решения, но сути от этого не меняет
Никитa1Бубнов: я хочу просто понять, каким оператором это решается?
damskiyugodnik43: меняет, я, например, шарю за С++, но с паскалем вообще не знаком
Никитa1Бубнов: У меня обратная ситуация
damskiyugodnik43: не повезло не повезло, советую пока не поздно перейти на что-нибудь приличное с паскаля: с++, java, python
Никитa1Бубнов: спасибо конечно, сам желаю перейти. Однако мне это задание нужно для олимпиады: хочу понять как решить это задание
damskiyugodnik43: а вообще решается это двумя циклами: первым проходишься по массиву и считаешь в переменную кол-во чисел удовлетворяющих условию. Вторым циклом проходишься опять по массиву проверяешь каждый элемент уже на соответствие второму условию и заменяешь его на переменную посчитанную в первый раз
damskiyugodnik43: ахаха, еще лучше, на олимпиадах с паскалем точно делать нечего
Никитa1Бубнов: const
N=2021;
var a:array[1..N] of integer;
i,m,k:integer;
begin
m:=15000; k:=0;
for i:=1 to N do
begin
readln(a[i]);
if (a[i] mod 2=0)and(a[i] mod 3>0)and(a[i] k:=k+1;
end;
for i:=1 to N do
begin
readln (a[i]);
if (a[i] mod 2=1)and(a[i] mod 3=0)and(a[i] then a[i]:=k
end;
writeln(a[i],'');
end.
Никитa1Бубнов: у меня такое получилось, но оно не выводит то, что надо

Ответы

Ответ дал: motorny0919
0

Ответ: на python.

k = sum(1 for i in a if i%2 == 0 and i%3 > 0)

for i in range(0,N):

 if a[i]%2 == 1 and a[i]%3 == 0:

   a[i] = k

 print(a[i])

Вас заинтересует