ПОМОГИТЕ НА ПИТОНЕ Найдите сумму последовательности натуральных чисел, если признаком окончания последовательности является два подряд идущих числа 0. Числа стоящие после двух нулей в решении задачи участвовать не должны.
1 1
0
7
0
9
0
0
5 17
вот такой пример
Ответы
Ответ:
list = [1,1,0,7,0,9,0,0,5,17]
list_new = []
print("Ваша последовательность чисел: " + str(list))
chk = False
for i in range(len(list)-1):
if chk == False:
if list[i] == 0 and list[i+1] == 0:
list_new.append(list[i])
list_new.append(list[i+1])
chk=True
else:
list_new.append(list[i])
if chk == False:
list_new.append(list[-1])
print("Новая последовательность: " + str(list_new))
print("Сумма чисел в новой последовательности: " + str(sum(list_new)))
То же, но для рандомного листа из 100 элементов (и с циклом While посимпатичнее получается):
from random import randint
n = 100
list = [randint(0,9) for x in range(n)]
list_new = []
print("Ваша последовательность чисел: " + str(list))
chk = False
i = 0
while i <= len(list)-1 and chk == False:
if list[i] == 0 and list[i+1] == 0:
list_new.append(list[i])
list_new.append(list[i+1])
chk=True
else:
list_new.append(list[i])
i += 1
if chk == False:
list_new.append(list[-1])
print("В исходной последовательности нет чисел после двух друг за другом идущих нулей.")
print("Сумма чисел в исходной последовательности: " + str(sum(list_new)))
else:
print("Новая последовательность: " + str(list_new))
print("Сумма чисел в новой последовательности: " + str(sum(list_new)))