Решить на Паскале:
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.
Числа, следующие за числом 0, считывать не нужно.
Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).
Выходные данные
Выведите ответ на задачу.
Ответы на вопрос
Нужно хранить два значения:
max1— наибольший элемент последовательности;max2— второй по величине элемент.
При чтении очередного числа возможны два случая:
Если число больше
max1, то прежний максимум становится вторым по величине, а новое число — максимумом.Если число не больше
max1, но большеmax2, то оно становится вторым по величине.
Равные элементы учитываются. Например, для последовательности 5 5 3 0 ответом будет 5, потому что после удаления одного наибольшего элемента в последовательности останется ещё одна пятёрка.
program SecondMaximum;var
x, max1, max2: LongInt;
begin
max1 := 0;
max2 := 0;
Read(x);
while x <> 0 do
begin
if x > max1 then
begin
max2 := max1;
max1 := x;
end
else if x > max2 then
max2 := x;
Read(x);
end;
WriteLn(max2);
end.
Так как последовательность состоит из натуральных чисел, начальные значения максимумов можно принять равными нулю.
Сложность алгоритма — O(n), поскольку каждое число рассматривается один раз. Дополнительная память — O(1).
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

