Напишите программу, которая переставляет все нулевые элементы в конец массива, при этом сохраняя порядок ненулевых элементов. Введите размер массива в первой строке. Во второй строке введите элементы массива, разделенные пробелами. Гарантируется, что размер массива будет больше 0 и не превышать 10000. Выведите все элементы получившегося массива, разделенные пробелами. Примеры: Введите 6 в первой строке, а затем 1 0 2 0 3 4 во второй строке. Выведите 1 2 3 4.
Юлия
Хорошо! Давайте решим эту задачу пошагово.
1. Первым шагом нам нужно получить размер массива. Давайте считаем эту информацию с помощью функции `input()` и сохраняем ее в переменной `n`.
\[
\text{{n}} = \text{{int}}(\text{{input}}())
\]
2. Затем, мы будем принимать элементы массива в виде строки и разделить их по пробелу. Сохраним эти значения в переменную `arr`.
\[
\text{{arr}} = \text{{list}}(\text{{map}}(\text{{int}}, \text{{input}}().\text{{split}}()))
\]
3. Создадим пустой список `non_zero`, в который будем добавлять ненулевые элементы массива.
\[
\text{{non\_zero}} = []
\]
4. Проходимся по каждому элементу `el` в массиве `arr`.
\[
\text{{for}} \ \text{{el}} \ \text{{in}} \ \text{{arr}}:
\]
5. Если `el` не равен нулю, добавляем его в список `non_zero`.
\[
\text{{if}} \ \text{{el}} \neq 0:
\]
\[
\quad \text{{non\_zero.append}}(\text{{el}})
\]
6. Наконец, добавляем нулевые элементы в конец списка `non_zero`.
\[
\text{{non\_zero.extend}}([0] * \text{{arr.count}}(0))
\]
7. Выводим получившийся массив через пробел.
\[
\text{{print}}(*\text{{non\_zero}})
\]
Вот полная программа, реализующая описанное решение:
Пожалуйста, проверьте код и дайте мне знать, если у вас возникнут вопросы!
1. Первым шагом нам нужно получить размер массива. Давайте считаем эту информацию с помощью функции `input()` и сохраняем ее в переменной `n`.
\[
\text{{n}} = \text{{int}}(\text{{input}}())
\]
2. Затем, мы будем принимать элементы массива в виде строки и разделить их по пробелу. Сохраним эти значения в переменную `arr`.
\[
\text{{arr}} = \text{{list}}(\text{{map}}(\text{{int}}, \text{{input}}().\text{{split}}()))
\]
3. Создадим пустой список `non_zero`, в который будем добавлять ненулевые элементы массива.
\[
\text{{non\_zero}} = []
\]
4. Проходимся по каждому элементу `el` в массиве `arr`.
\[
\text{{for}} \ \text{{el}} \ \text{{in}} \ \text{{arr}}:
\]
5. Если `el` не равен нулю, добавляем его в список `non_zero`.
\[
\text{{if}} \ \text{{el}} \neq 0:
\]
\[
\quad \text{{non\_zero.append}}(\text{{el}})
\]
6. Наконец, добавляем нулевые элементы в конец списка `non_zero`.
\[
\text{{non\_zero.extend}}([0] * \text{{arr.count}}(0))
\]
7. Выводим получившийся массив через пробел.
\[
\text{{print}}(*\text{{non\_zero}})
\]
Вот полная программа, реализующая описанное решение:
python
n = int(input())
arr = list(map(int, input().split()))
non_zero = []
for el in arr:
if el != 0:
non_zero.append(el)
non_zero.extend([0] * arr.count(0))
print(*non_zero)
Пожалуйста, проверьте код и дайте мне знать, если у вас возникнут вопросы!
Знаешь ответ?