Списки

Упражнения

Во всех задачах этого листка программа получает на входстроку из целых чисел, разделенных пробелами. В конце строкитакже могут быть пробелы. Данную строку необходимо считатьв список целых чисел.

A: Четные индексы

Выведите все элементы списка с четными индексами(то есть A[0], A[2], A[4], …).

В этой задаче нельзя использовать инструкцию if.

Ввод Вывод
1 2 3 4 5 1 3 5

B: Четные элементы

Выведите все четные элементы списка.

Ввод Вывод
1 2 2 3 3 3 4 2 2 4

C: Больше предыдущего

Дан список чисел. Выведите все элементы списка, которые больше предыдущего элемента.

D: Наибольший элемент

Дан список чисел. Выведите значение наибольшего элемента в списке, а затеминдекс этого элемента в списке. Если наибольших элементов несколько,выведите индекс первого из них. Гарантируется, что в списке есть хотя бы один элемент.

E: Больше своих соседей

Дан список чисел. Определите, сколько в этом списке элементов, которыебольше двух своих соседей и выведите количество таких элементов.

F: Наименьший положительный

Выведите значение наименьшего из всех положительных элементов в списке.Известно, что в списке есть хотя бы один положительный элемент, а значениявсех элементов списка по модулю не превосходят 1000.

G: Ближайшее число

Дан список чисел и некоторое число. Найдите в данном списке элемент, ближайший к заданному.

В первой строке заданы элементы списка (целые числа, не превосходящие по модулю (10^9)). Гарантируется, что в списке есть хотя бы один элемент.

Во второй строке дано одно целое число (x), не превосходящее по модулю (10^9)

Выведите значение элемента списка, ближайшее к (x). Если таких чисел несколько, выведите первое из них.

Ввод Вывод
6 5 4 2 1
3
4
1 2 4 5 6
3
2
1 2 3
2
2

H: Наименьший нечетный

Выведите значение наименьшего нечетного элемента списка, а если в спискенет нечетных элементов — выведите число 0.

В этой задаче вам ничего не известно о входных числах.Решения, работающие только при каких-то предположениях оразмере входного числа, приниматься не будут.

В решении этой задачи нельзя использовать вспомогательный список.

Ввод Вывод
0 1 2 3 4 1
2 4 6 8 10 0

Упражнения на линейный поиск

I: Первый положительный

Выведите индекс первого положительного элемента в данном списке.Он обязательно есть в списке.

В этой задаче нельзя пользоваться инструкцией if. Элементы списканужно просматривать с начала до нахождения нужного элемента.

J: Первый положительный – 2

Выведите индекс первого положительного элемента в данном списке.Если такого элемента нет, программа должна вывести число -1.

В этой задаче нельзя пользоваться инструкцией if внутри цикла.

K: Шеренга

Андрей перешёл в другую школу. На уроке физкультуры ему понадобилось определить своё место в строю.Помогите ему это сделать.

Программа получает на вход невозрастающую последовательность натуральных чисел,означающих рост каждого человека в строю. После этого вводится число X — рост Андрея.Все числа во входных данных натуральные и не превышают 200.

Выведите номер, под которым Андрей должен встать в строй. Если в строю есть люди с одинаковым ростом,таким же, как у Андрея, то он должен встать после них.

В этой задаче нельзя использовать цикл for, инструкцию break, инструкцию if. Задача решается одним циклом while.

Ввод Вывод
165 163 160 160 157 157 155 154
162
3
165 163 160 160 157 157 155 154
160
5

L: Чёрная пятница

До 2020 года у людей была традиция — при появлении в продаже нового товара, а такжепри распродажах старых товаров по сниженным ценам, выстраиваться в длинные очереди перед магазином,рассчитывая приобрести новинку или товар по дешёвке. Говорят, что где-то такая традиция сохраниласьи в настоящее время.

В магазине продают революционные игровые приставки PlayStation. В очередь в магазин выстроилось (n) покупателей, каждый из которых хочет купить (a_igt 0) приставок.В первой строке входных данных записаны значения (a_i) через пробел в том порядке, в которомони стоят в очереди.

Магазин обслуживает покупателей строго в порядке очереди до тех пор, пока не кончатся покупателиили приставки. Всего в магазине имеется (Kgt 0) приставок, это значение записано в следующей строке.

Определите, сколько человек уйдёт с покупками. Каждый покупатель покупает столько приставок,сколько он хочет купить, но последнему покупателю может достаться меньше желаемого числа приставок.

Ввод Вывод
3 5 7 2 4 6
10
3

M: Соседи одного знака

Дан список чисел. Если в нем есть два соседних элемента одного знака(то есть оба положительных или оба отрицательных), выведите эти числа.Если соседних элементов одного знака нет – не выводите ничего. Если таких пар соседейнесколько – выведите первую такую пару.

В этой задаче нужно использовать цикл while, нельзя использовать инструкцииbreak и инструкцию if внутри цикла.

Ввод Вывод
-1 2 3 -1 -2 2 3

Упражнения на перестановки элементов

N: Переставить в обратном порядке

Переставьте элементы данного списка в обратном порядке, затем выведитеэлементы полученного списка.

Вам нужно не просто вывести элементы списка от первого до последнего,а требуется изменить значения элементов самого списка, поменяв местамиA[0] c A[n – 1],A[1] с A[n – 2], а затем вывести элементы списка подряд с начала.

В этой задаче нельзя использовать срезы и вспомогательный список.

Ввод Вывод
1 2 3 4 5 5 4 3 2 1

O: Переставить соседние

Переставьте соседние элементы списка (A[0] c A[1],A[2] c A[3] и т.д.).Если элементов нечетное число, то последний элемент остается на своем месте.

В решении этой задачи нельзя использовать вспомогательный список.

Ввод Вывод
1 2 3 4 5 2 1 4 3 5

P: Переставить min и max

Дан список. Поменяйте местами минимальный и максимальный элемент этого списка.Гарантируется, что в списке есть хотя бы один элемент. Гарантируется, что в спискеровно один элемент, равный минимальному, и ровно один элемент, равный максимальному.

Ввод Вывод
3 4 5 2 1 3 4 1 2 5

Q: Циклический сдвиг вправо

Циклически сдвиньте элементы списка вправо(A[0] переходит на место A[1],A[1] на место A[2], …,последний элемент переходит на место A[0]).

В этой задаче нельзя использовать срезы и вспомогательный список.

Гарантируется, что в списке есть хотя бы один элемент.

Задача должна быть решена с использованием минимальновозможного количества операций присваивания(при этом операция присваивания вида a, b = b, aсчитается за две операции).

Ввод Вывод
1 2 3 4 5 5 1 2 3 4
Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...