Нужно удалить первый элемент списка кратные 2 и не кратный 3. я ввожу 1 2 18 5. У меня удаляет 1. В чём ошибка?
a=list(map(int, input().split()))
n=len(a)
i=0
i1=0
while i<=n-1:
if a[i]%2==0 and a[i]%3!=0:
i+=1
break
else:
n-=1
for j in range(i, n):
a[j]=a[j+1]
a.pop()
for x in a:
print(x, end= ' ')

20 Авг 2019 в 08:35
200 +1
0
Ответы
1

Ошибка заключается в том, что после удаления элемента, удовлетворяющего условию, выход из цикла не происходит.

Вот исправленный код:

a = list(map(int, input().split()))
n = len(a)
i = 0
i1 = 0
while i < n:
if a[i] % 2 == 0 and a[i] % 3 != 0:
for j in range(i, n - 1):
a[j] = a[j + 1]
n -= 1
else:
i += 1
a = a[:n]
for x in a:
print(x, end=' ')

20 Апр 2024 в 13:39
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир