В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
дима2855
дима2855
16.07.2022 08:54 •  Информатика

C++
незнайка ищет наибольшую подпоследовательность данной последовательности целых чисел, сумма элементов которой делится на 3.
он попросил вас написать программу, которая:
• читает с клавиатуры последовательность целых чисел;
• вычисляет длину самой длинной подпоследовательности, сумма элементов которой делится на 3;
• выводит результат на экран;

ввод
первая строка ввода состоит из одного целого числа n (1  n  1). в каждой из следующих n строк находится один элемент последовательности 0  ai  2 (i = 1..n).

вывод
выведите на экран длину наибольшей найденной подпоследовательности.

пример
вход выход
7
10
6
7
12
4
7
22 5

Показать ответ
Ответ:
ДЭМКО
ДЭМКО
09.01.2021 00:20
PascalABC.NET 3.4.2, сборка 1863 от 10.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var N, A, B, C, D: integer;

 Readln(N, A, B, C, D);

 if A > C then (A, B, C, D) := (C, D, B, A);

 var s := 1.To(A - 1);

 if B < C then // ( ) [ ]

   s := s + B.Downto(A) + (B + 1).To(C - 1) +

       D.Downto(C) + (D + 1).To(N)

 else

 if D < B then // ( [ ] )

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - C + 1, t -> t + A + B - D) +

       SeqGen(B - D, t -> A - t + B - D - 1) + (B + 1).To(N)

 end

   else // ( [ ) ]

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - B, t -> D - t) + SeqGen(B - C + 1, t -> A + t) +

       (D + 1).To(N);

 end;

 s.Println;

end.

0,0(0 оценок)
Ответ:
angelinaignaty1
angelinaignaty1
19.03.2021 13:34
Значит так: мы создаем массив избыточной длины, куда потом будем записывать рандомные числа. Так же мы создаем массив-счетчик b (у него индексами являются сами числа, а элементами - количество этого числа в массиве А), куда будет присваиваться, сколько раз нам встречается то или иное число (перед этим мы массив обязательно обнулим). В конце мы смотрим максимальное число из массива-счетчика. Вуаля!

Вот пример программы на паскале ABC:

var a:array [1..1000000] of integer; 
b:array [1..10] of longint;   
c:integer;   
i,max,n:longint;
begin
write('Введите число элементов массива: ');
readln(n); 
max:=0; 
for i:=1 to 10 do 
b[i]:=0; 
for i:=1 to n do  begin 
a[i]:=random(10)+1; 
write(a[i],' '); 
b[a[i]]:=b[a[i]]+1 
end; 
for i:=1 to 10 do if b[i]>max then 
begin 
c:=i; 
max:=b[i] 
end; 
writeln; 
writeln('Чаще всего в массиве встречается число ',c)
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота