Напиши программу, которая читает число n, n чисел и число k. Выведи k-е число по величине из чисел последовательности.
Не используй встроенные методы сортировки.
Пример, ввод:
4
20
40
10
30
3
Вывод:
20
Python
Python. Задача с числами
Можно использовать алгоритм сортировки выбором. Сначала вводятся n чисел, затем число k. После этого мы ищем k-ое по величине число, перебирая все числа и ищем максимальное на каждом шаге. Когда мы находим максимальное число i-ый раз, мы уменьшаем k на единицу. Когда k становится равным нулю, мы нашли k-ое по величине число и выводим его.
Вот реализация на Python:
Вот реализация на Python:
n = int(input())
numbers = []
for i in range(n):
num = int(input())
numbers.append(num)
k = int(input())
for i in range(k):
max_num = numbers[0]
max_index = 0
for j in range(1, n):
if numbers[j] > max_num:
max_num = numbers[j]
max_index = j
numbers[max_index] = -1
print(max_num)
Пример работы программы: Ввод:
4
20
40
10
30
3
Вывод:
20
Саня Тимофеев
Спасибо
Введём такие данные:
5
1
3
2
3
2
3
То есть задаём размер последовательности числом 5, потом вводим в столбик пять элементов последовательности и в самом конце ещё число 3. Сортируем введённый список по возрастанию, например, пузырьком и получаем:
1 2 2 3 3
Поскольку введено 3, то надо вывести третье по величине число. Не третий номер отсортированной последовательности, то есть 2, а третье по величине! Сразу вопрос: как считать третье по величине? Третье в порядке возрастания, то есть в данном случае 3, или третье в порядке убывания, то есть в данном случае 1? Если третье по величине число в порядке возрастания, то можно так:
5
1
3
2
3
2
3
То есть задаём размер последовательности числом 5, потом вводим в столбик пять элементов последовательности и в самом конце ещё число 3. Сортируем введённый список по возрастанию, например, пузырьком и получаем:
1 2 2 3 3
Поскольку введено 3, то надо вывести третье по величине число. Не третий номер отсортированной последовательности, то есть 2, а третье по величине! Сразу вопрос: как считать третье по величине? Третье в порядке возрастания, то есть в данном случае 3, или третье в порядке убывания, то есть в данном случае 1? Если третье по величине число в порядке возрастания, то можно так:
n, A = int(input()), []
for i in range(n): A.append(int(input()))
for i in range(1, n):
for j in range(n - 1, i - 1, -1):
if A[j - 1] > A[j]: A[j - 1], A[j] = A[j], A[j - 1]
k = int(input())
print(list(set(A))[k - 1])
Похожие вопросы
- Задача по Python: Найти сумму чисел и при вводе чисел...
- Python задача "Игра с числами"
- Python, найти минимальное число Используя только If else
- Python задача линейной регрессии
- Python задача - уместится ли одна коробка в другую
- PYTHON Задача "Счастливые билетики"
- Python задача по комбинаторике
- Python задача "Сортировка перестановки"
- Python задача на программирование
- Информатика Python задача ЕГЭ