Помогите разобраться с задачкой! Нужно найти и вывести сумму индексов элементов списка, кратных К.
Вроде должно работать, но - нет(
Ошибку найти не могу!
numbers_list = []
numbers_quantity = int(input('Введите количество чисел: '))
for numbers in range(numbers_quantity):
numbers = int(input('Введите число: '))
numbers_list.append(numbers)
print(numbers_list)
index_summa = 0
number_K = int(input('Введите значение числа К: '))
for numbers in range(numbers_quantity):
if numbers / number_K == 0:
index_summa += numbers
print(index_summa)
else:
print('Условие задачи не выполняется')
Python
Сумма индексов элементов списка
Если надо найти сумму индексов, то сумму индексов и вычисляйте! А у Вас что находится - я не знаю. Вот Ваш исправленный код:
numbers_list = []
numbers_quantity = int(input('Введите количество чисел: '))
for numbers in range(numbers_quantity):
numbers = int(input('Введите число: '))
numbers_list.append(numbers)
print(*numbers_list)
index_summa = 0
number_K = int(input('Введите значение числа К: '))
for numbers in range(numbers_quantity):
if numbers_list[numbers] % number_K == 0:
index_summa += numbers
print(index_summa)
Так нормально всё работает:
Юрий К
Спасибо огромное! Так действительно все заработало)
"кратных К" не означает, что при делении на это К результат будет нулевой.
"Зачем математика в программировании?"
"Зачем математика в программировании?"
ЗАЧЕМ ты пытаешься найти сумму арифметической прогрессии циклом? В школе формулу этой суммы перестали изучать?
n, k = int(input('длина списка: ')), int(input('K: '))
if n
Никита Сергиенко
По-моему, ему нужно на кратность проверять элементы, а суммировать их индексы. К константной формуле это не сводится. Фильтр какой-нибудь примитивный:
print(sum(filter(lambda i: lst[i] % k == 0, range(n))))
Сумма с фильтром:
lst = list(map(int, map(input, ('Введите число: ',) * int(input('Введите количество чисел: ')))))
k = int(input('Введите число K: '))
print(sum(filter(lambda i: lst[i] % k == 0, range(len(lst)))))
Или можно так: lst = list(map(int, map(input, ('Введите число: ',) * int(input('Введите количество чисел: ')))))
k = int(input('Введите число K: '))
def compose(f, g, h): return lambda *a, **k: f(g(h(*a, **k)))
print(sum(filter(compose((0).__eq__, k.__rmod__, lst.__getitem__), range(len(lst)))))
Попробуйте такой:
numbers_list = []
numbers_quantity = int(input('Введите количество чисел: '))
for numbers in range(numbers_quantity):
numbers = int(input('Введите число: '))
numbers_list.append(numbers)
print(numbers_list)
index_summa = 0
number_K = int(input('Введите значение числа К: '))
for i in range(numbers_quantity):
if i % number_K == 0:
index_summa += i
if index_summa == 0:
print('Элементов, кратных К, нет')
else:
print('Сумма индексов элементов списка, кратных К:', index_summa)
Юрий К
Спасибо за помощь. На одну полезную мысль навели) Но ваш код считает неправильно. При заданных цифрах 2,2,2,2, он выдает отсутствие кратных элементов.
Похожие вопросы
- Первый элемент списка — 1 буква 'а', последний — 33 буквы 'я'. Используй метод append().
- Необходимо написать программу которая посчитает сумму всех элементов в матрице.
- Как решить задачу без написания 999 элементов списка?
- Написать программу, которая находит произведение элементов списка, находящихся на нечетных позициях.
- Нахождение индексов максимального и минимального элемента массива
- Программирование питона. Найди количество элементов в данном списке
- Как в python получить элемент из списка по нескольким значениям
- Найти сумму n-го количества элементов ряда 1, -0.5, 0.25, -0.125, …
- Работа со списками Python. В одну строку.
- Задача со списками, Python