Давайте разберем задачу пошагово.
Задача:
Дано число N, затем N действительных чисел. Нужно составить новый массив из тех чисел исходного массива, у которых дробная часть меньше, чем дробная часть последнего числа исходного массива. При этом порядок чисел должен сохраняться.
Что нужно сделать:
- Вводим число N — количество чисел.
- Вводим N чисел в массив.
- Находим дробную часть последнего числа (это число в массиве).
- Создаем новый массив, в который включим только те числа из исходного массива, у которых дробная часть меньше, чем дробная часть последнего числа.
- Выводим новый массив.
Пошаговое решение с примером:
Предположим, у нас есть такой ввод:
N = 5
Массив: 3.1415, 2.7182, 1.4142, 0.5772, 1.6180
- Последнее число — 1.6180.
- Дробная часть последнего числа: 0.6180.
Теперь проверим каждое число:
- 3.1415 → дробная часть 0.1415 → меньше 0.6180? Да → включаем.
- 2.7182 → дробная часть 0.7182 → больше 0.6180? Нет → не включаем.
- 1.4142 → дробная часть 0.4142 → меньше 0.6180? Да → включаем.
- 0.5772 → дробная часть 0.5772 → меньше 0.6180? Да → включаем.
- 1.6180 → дробная часть 0.6180 → равна, не меньше → не включаем.
Итоговый массив: 3.1415, 1.4142, 0.5772
Основной алгоритм (на псевдокоде):
ввод N
ввод массива чисел numbers длиной N
последнее число: last_num = numbers[N-1]
дробная часть последнего числа: last_fraction = last_num - целая часть(last_num)
новый массив: result = []
для каждого числа в numbers:
дробная часть: fraction = число - целая часть(число)
если fraction < last_fraction:
добавить число в result
вывести result
Полный пример кода на Python:
N = int(input()) # вводим количество чисел
numbers = list(map(float, input().split())) # вводим N чисел через пробел
last_num = numbers[-1]
last_fraction = last_num - int(last_num) # дробная часть последнего числа
result = []
for num in numbers:
fraction = num - int(num)
if fraction < last_fraction:
result.append(num)
print(result)
Если у вас есть конкретные входные данные, я помогу выполнить решение именно для них!