Задача найти, cколько элементов массива больше своих соседей.(python)
a = list(map(int, input().split()))
s=0
if len(a)<3:
print('0')
else:
for i in range(2,len(a)):
if a[i-2]>a[i-1] and a[i]>a[i-1]:
s+=1
print(s)
Вот мой код. Почему не проходит?
Ответы на вопрос:
1 a = [int(x) for x in input().split()]
2 b = []
3 i = 0
4 if len (a) == 1:
7 print(a)
6 else:
7 for c in a:
8 b.append(int(a[i - 1]) + int(a[i + 1]))
9i = i + 1
10print(b)
a = list(map(int, input().split()))
s=0
if len(a)<3:
pass
else:
for i in range(1,len(a)-1):
if a[i] > a[i-1] and a[i]>a[i+1]:
s+=1
print(s)
Ввод/вывод:
test 1
>>> 1 3 2 4 2
>>> 2
test 2
>>> 1 2
>>> 0
test 3
>>> 1 5 2 6 3 8 4 9 2 10 1
>>> 5
Объяснение:
У вас была ошибка в проверке элементов, вы искали кол-во элементов, которые меньше обоих своих соседей, вместо тех, которые больше, как в задании. Так же, при длине последовательности меньше трёх программа выводила 0 два раза - в начале, где вы проверяли длину последовательности, и в конце переменную s, которая тоже в таком случае равна нулю.
Популярно: Информатика
-
leovd07.09.2021 14:10
-
Vika14022008121.08.2022 07:42
-
Zhernakova04.02.2021 05:42
-
Надежда1класс27.07.2021 19:12
-
3110196017.06.2020 20:37
-
juhf14.10.2021 11:25
-
aboderu04.01.2021 15:06
-
Alishan06060627.10.2021 08:17
-
FOXI6666622.04.2022 04:15
-
Gazeerovka06.01.2022 17:11