Задан массив из n целых чисел. Выведите пары
соседних элементов одного знака. Если соседних элементов одного знака нет, то
ничего не выводите.
Вход. В
первой строке записано число n. В следующей строке записано n целых
чисел. Все числа по модулю не превышают 100.
Выход. Выведите
пары соседних элементов одного знака.
Пример входа 1 |
Пример выхода 1 |
7 9 5 -7 -7 5 -9 -4 |
9 5 -7 -7 -9 -4 |
|
|
Пример входа 2 |
Пример выхода 2 |
10 -8 -10 -2 1 -9 5 -9 0 0 -9 |
-8 -10 -10 -2 |
массив
Прочитаем
входную последовательность чисел в массив m. Далее при помощи цикла выведем пары соседних элементов одного знака. Пара элементов mi и mi+1 имеют один знак, если их произведение положительно: mi * mi+1 > 0.
Реализация алгоритма
Объявим рабочий массив.
int m[101];
Читаем количество входных чисел n.
scanf("%d",&n);
Читаем входной массив.
for (i = 0; i < n; i++)
scanf("%d", &m[i]);
Выводим пары
соседних элементов одного знака.
for (i = 0; i < n - 1; i++)
if (m[i] * m[i + 1]
> 0)
printf("%d
%d\n", m[i], m[i + 1]);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int m[] = new int[n];
for(int i = 0; i < n; i++)
m[i] = con.nextInt();
for(int i = 0; i < n - 1; i++)
if (m[i] * m[i+1] > 0)
System.out.println(m[i] + " " + m[i+1]);
con.close();
}
}
Python реализация
n = int(input())
lst = list(map(int, input().split()))
for i in range(n - 1):
if lst[i] * lst[i+1] > 0: print(lst[i], lst[i+1])