Для решения данной задачи можно использовать следующий алгоритм:
1. Запросить у пользователя значения k и n.
2. Создать пустой список для хранения случайных чисел.
3. Проверить, что значения k и n соответствуют ограничениям (10<=k<=20, 1<=n<=5). Если нет, вывести сообщение об ошибке и завершить программу.
4. Создать цикл, который будет повторяться k раз:
- Сгенерировать случайное нечетное n-значное число.
- Добавить число в список.
5. Найти максимальное число в списке.
6. Вывести все числа из списка, разделенные пробелами.
7. Вывести максимальное число.
Вот пример кода на языке Python, реализующий данный алгоритм:
```python
import random
k = int(input("Введите количество чисел (от 10 до 20): "))
n = int(input("Введите количество цифр в числе (от 1 до 5): "))
if not (10 <= k <= 20) or not (1 <= n <= 5):
print("Некорректные значения.")
exit()
numbers = []
for _ in range(k):
number = random.randint(10**(n-1), 10**n - 1)
if number % 2 == 0:
number += 1
numbers.append(number)
max_number = max(numbers)
print("Список чисел:")
for number in numbers:
print(number, end=" ")
print("nМаксимальное число:", max_number)
```
Этот код сначала запрашивает у пользователя значения k и n. Затем он создает пустой список numbers и запускает цикл, который повторяется k раз. Внутри каждой итерации генерируется случайное нечетное n-значное число и добавляется в список numbers. Затем с помощью функции max() находим максимальное число в списке numbers. Наконец, происходит вывод списка чисел и максимального числа.