Информатика
Напишите программу, которая выполняет "сжатие массива целых чисел" –
переставляет все нулевые элементы в конец.
При этом все ненулевые элементы располагаются в начале в том же порядке.
Возможно решать задачу по-разному, например, использовать дополнительные массивы или даже не использовать массивы совсем.
Главное - вывести получившуюся последовательность.
Вы должны написать полностью программу на Java, один public класс с именем Main в пакете по умолчанию (в коде отсутствует подстрока package) с функцией main()),
которая решает задачу.
Ввод осуществляется с консоли, вывод - на консоль.
Программа должна работать точно по протоколу, который показан в примерах.
Например, нельзя выводить ничего лишнего, скажем, фразу "Введите N".
Входные данные
Первая строка содержит размер массива N.
Во второй строке через пробел задаются N целых чисел – элементы массива.
Гарантируется, что входные данные корректны и N < 10001.
Выходные данные
Программа должна вывести в одну строчку все элементы получившегося массива, разделив их пробелами.
For example:
Input Result
6
1 0 2 0 3 4
1 2 3 4 0 0
6
1 2 3 4 5 6
1 2 3 4 5 6
а) b = 23
б) b = 60
в) b = 89
г) b = 22
Объяснение:
if a % 10 < 3: b = a * 2
elif a % 10 <= 5; b = a + 10
elif a % 10 <= 7: b = a * 10
else: b = a + 1
Код отделяет последнюю цифру от числа a.
а)
a = 13
a % 10 = 3
if a % 10 < 3: b = a * 2 // Не подходит, так как 3 не меньше 3
elif a % 10 <= 5; b = a + 10 // 3 ≤ 5
b = a + 10 (b = 13 + 10 = 23)
elif a % 10 <= 7: b = a * 10 // Не подходит, так как условие выполнилось раньше
else: b = a + 1 // Не подходит, так как условие выполнилось раньше
б)
a = 30
a % 10 = 0
if a % 10 < 3: b = a * 2 // 0 < 3
b = a × 2 (b = 30 × 2 = 60)
elif a % 10 <= 5; b = a + 10 // Не подходит, так как условие выполнилось раньше
elif a % 10 <= 7: b = a * 10 // Не подходит, так как условие выполнилось раньше
else: b = a + 1 // Не подходит, так как условие выполнилось раньше
в)
a = 88
a % 10 = 8
if a % 10 < 3: b = a * 2 // Не подходит, так как 8 не меньше 3
elif a % 10 <= 5; b = a + 10 // Не подходит, так как 8 не меньше или равно 5
elif a % 10 <= 7: b = a * 10 // Не подходит, так как 8 не меньше или равно 7
else: b = a + 1 // Иначе
b = a + 1 (b = 88 + 1= 89)
г)
a = 11
a % 10 = 1
if a % 10 < 3: b = a * 2 // 1 < 3
b = a × 2 (b = 11 × 2 = 22)
elif a % 10 <= 5; b = a + 10 // Не подходит, так как условие выполнилось раньше
elif a % 10 <= 7: b = a * 10 // Не подходит, так как условие выполнилось раньше
else: b = a + 1 // Не подходит, так как условие выполнилось раньше