Дан массив из n целых чисел. Выведите только его отрицательные элементы, изменив их порядок на
обратный.
Вход. Первая
строка содержит число n (1 ≤ n ≤ 100). Во второй строке
записаны n
целых чисел, каждое из которых по модулю не превышает 100.
Выход. В первой строке
выведите количество отрицательных элементов массива. Во второй строке выведите
сами отрицательные элементы в обратном порядке. Если в массиве нет
отрицательных элементов, выведите
“NO”.
Пример входа 1 |
Пример выхода 1 |
7 -2 5 4 -3 7
-1 0 |
3 -1 -3 -2 |
|
|
Пример входа 2 |
Пример выхода 2 |
5 2 1 0 1 5 |
NO |
массив
Читаем входную последовательность в массив. Подсчитываем
количество отрицательных чисел. Если отрицательных чисел нет (их количество
равно 0), выводим “NO”. В
противном случае выводим сначала количество отрицательных чисел, а затем сами
числа в обратном порядке.
Реализация алгоритма
Для
хранения последовательности объявляем массив m.
int m[101];
Читаем входные данные.
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &m[i]);
В переменной cnt подсчитаем количество отрицательных чисел.
cnt = 0;
for (i = 0; i < n; i++)
if (m[i] < 0) cnt++;
Если в массиве нет отрицательных чисел, выводим “NO”.
if (cnt == 0)
printf("NO\n");
else
{
Выводим количество отрицательных чисел.
printf("%d\n", cnt);
Выводим отрицательные числа в обратном порядке.
for (i = n - 1; i >= 0;
i--)
if (m[i] < 0) printf("%d ", m[i]);
printf("\n");
}
Python реализация
Читаем входные данные.
n = int(input())
lst = list(map(int, input().split()))
Создадим
список negatives,
который
содержит только отрицательные числа.
negatives = [x for x in
lst if x < 0]
Если в списке нет отрицательных чисел, выводим “NO”.
if not negatives:
print("NO")
else:
В противном случае сначала выводим количество
отрицательных чисел, а затем сами отрицательные числа в обратном порядке.
print(len(negatives))
print(*negatives[::-1])