Предмет: Информатика, автор: shidakova07

ПОМОГИТЕ НА ПИТОНЕ Найдите сумму последовательности натуральных чисел, если признаком окончания последовательности является два подряд идущих числа 0. Числа стоящие после двух нулей в решении задачи участвовать не должны.


pinguinbird: а последовательность, как мне думается, должна быть не любая, а именно 1,2,3,4,5...100 ?
pinguinbird: ааа..понял кажется
shidakova07: Входные данные Выходные данные
1 1
0
7
0
9
0
0
5 17
вот такой пример
pinguinbird: ok

Ответы

Автор ответа: pinguinbird
0

Ответ:

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)))

Похожие вопросы