Давайте разберем задачу пошагово и создадим алгоритм для решения.
1. Понимание задачи
У нас есть число ( N ) и ( N ) действительных чисел. Нужно создать массив, в котором будут только те числа, дробная часть которых меньше, чем дробная часть последнего числа в исходном массиве.
2. Пример
Рассмотрим ваш пример:
Входные данные:
6
3.14 -9.00001 2.71828 3.099999 0.18 13.4
Выходные данные:
[3.14, -9.00001, 3.099999, 0.18]
- Последнее число — это 13.4. Дробная часть этого числа равна 0.4.
- Из всех чисел, только дробные части 3.14 (0.14), -9.00001 (0.00001), 3.099999 (0.099999) и 0.18 (0.18) меньше, чем 0.4.
3. Алгоритм
Мы будем следовать следующему плану:
- Читаем входные данные и преобразуем их в массив действительных чисел.
- Находим дробную часть последнего числа в массиве.
- Проходим по всем числам и выбираем только те, у которых дробная часть меньше, чем у последнего числа.
- Выводим полученный массив.
4. Код
Давайте напишем код на Python, который реализует этот алгоритм.
def get_fractional_part(x):
return abs(x) - int(abs(x))
def filter_numbers(numbers):
if not numbers:
return []
last_number = numbers[-1]
last_fraction = get_fractional_part(last_number)
result = []
for number in numbers:
if get_fractional_part(number) < last_fraction:
result.append(number)
return result
# Ввод
N = 6
numbers = [3.14, -9.00001, 2.71828, 3.099999, 0.18, 13.4]
# Фильтрация чисел
result = filter_numbers(numbers)
# Вывод
print(result)
5. Пояснения к коду
- Функция
get_fractional_part(x) возвращает дробную часть числа.
- В функции
filter_numbers(numbers) мы сначала получаем дробную часть последнего числа, затем проходим по списку. Если дробная часть текущего числа меньше дробной части последнего, добавляем его в результат.
- В конце выводим результат.
6. Тестирование
Запустив этот код с вашими входными данными, мы получим правильный ответ. Надеюсь, теперь процесс стал понятен! Если есть дополнительные вопросы, задавайте.