Помогите пожалуйста с заданием Напишите программу, которая в последовательности...

+554 голосов
2.6m просмотров

Помогите пожалуйста с заданием Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 6. Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число — сумму чисел, кратных 6. Сделать это нужно с помощью python


Информатика (79 баллов) | 2.6m просмотров
Дано ответов: 2
+52 голосов

n = int(input('How many numbers line has? - '))

numbers_list = []

for i in range(n):

   numbers_list.append('')

numbers_list[:] = map(int, input().split())

#print(*numbers_list)

numbers_d_6 = 0

for i in range(n):

   if (numbers_list[i] % 6 == 0):

       numbers_d_6 += numbers_list[i]

print('Amount of numbers, which are multiples of 6: ',numbers_d_6)

(474 баллов)
+81

В общем, садитесь, два)

+93

А так же можно организовать ввод последовательности с помощью генератора, и вообще не хранить в памяти всю последовательность целиком

+180

n = int(input()); a = []
for i in range(n):
a.append(int(input()))
print(sum(filter(lambda i: i % 6 == 0, a)))

+138

для такого формата заданий предполагается считывание всех входных данных с новой строки.
Существует функция filter() и sum().
ваш код можно сократить до:
n = int(input())
for i in range(n):

+130 голосов

Ответ:

--- Python 3.8.3 ---

def ReadSeq(SeqLen: int, SeqType = int):

   '''

   Возвращает последовательность элементов в указанном типе, считанных с клавиатуры, заданной длины.

   '''

   try:

       for _ in range(SeqLen):

           yield SeqType(input())

   except TypeError:

       raise RuntimeError(f'Unsupported type: {CastType}')

def main():

   n = int(input())

   Numbers = ReadSeq(n)

   print(sum(filter(lambda i: i % 6 == 0, Numbers)))

       

if __name__ == "__main__":

   main()

Программа эффективна по памяти, т.к в любой момент её работы с памяти храниться только один элемент последовательности

(1.6k баллов)