Пользователь вводит 2 числа a и b. Нужно найти сумму только четных чисел между ними (и включая их).
Не знаю как закончить код и правильный ли он вообще.
a=int(input("a = "))
b=int(input("b = "))
for i in range(a, b):
if i%2==0:
??
print(sum)
задан 14 окт 2022 в 20:27
3
for i in range(a, b):
Во втором аргументе range
нужно указать число на 1 больше, т.к. итоговый диапазон не включает последнее число, т.е. при range(2,8)
мы получим набор чисел от 2 до 7.
??
После того, как проверилось наше условие на четность, нужно сложить все подходящие числа. Для этого еще перед началом цикла нужно создать нулевую переменную (например, sum_numbers) и потом к ней каждый раз прибавлять каждое подходящее число. Это можно сделать через sum_numbers = sum_numbers + i
или наиболее распространенный вариант sum_numbers += i
.
Ниже представлен один из правильных вариантов:
a=int(input("a = "))
b=int(input("b = "))
sum_numbers = 0
for i in range(a, b + 1):
if i % 2 == 0:
sum_numbers += i
print(sum_numbers)
ответ дан 15 окт 2022 в 2:24
1
a=int(input("a = "))
b=int(input("b = "))
ans = []
for i in range(a, b+1):
if i%2==0:
ans.append(i)
print(sum(ans))
проходим циклом по заданной последовательности, добавляем в итоговый массив данные соответствующие условию, потом используем встроенную функцию и получаем сумму.
ответ дан 14 окт 2022 в 20:35
VanoKiVanoKi
18210 бронзовых знаков
5
способ 1:
res = sum(i for i in range(a, b + 1) if i % 2 == 0)
способ 1.1:
res = sum(i for i in range(2 * (a + 1) // 2, 2 * b // 2 + 1, 2))
способ 2:
res = ((a + 1) // 2 + b // 2) * (b // 2 - (a + 1) // 2 + 1)
тут просто решаем как сумму арифметической прогрессии
ответ дан 14 окт 2022 в 21:29
ZhiharZhihar
36.8k4 золотых знака25 серебряных знаков66 бронзовых знаков
Можно считать сумму только четных чисел с шагом 2:
a=int(input("a = "))
b=int(input("b = "))
s = 0
for i in range(a + a % 2, b + 1, 2):
s += i
print(s)
или однострочник:
print(sum(i for i in range(a + a % 2, b + 1, 2)))
ответ дан 14 окт 2022 в 21:41
Nowhere ManNowhere Man
11.5k17 золотых знаков15 серебряных знаков27 бронзовых знаков
How to find the sum of even numbers from entered N numbers?
i tried the below code but cant find the required output.
n=int(input('Enter the number:'))
if(n<=0):
print('Enter a valid number')
else:
sum=0
count = 0
while(n>0):
for count in range (i % 2 ==0)
sum+=n
n-=1
print(sum)
Vadim Kotov
8,0348 gold badges48 silver badges62 bronze badges
asked Sep 3, 2017 at 15:33
9
this was more or less solved in comments by passing a range
with step
to sum
. Most pythonic way:
sum(range(2,n+1,2))
In that particular case, this can be improved to use a simple math expression to reduce complexity
since the sum of integers from 1 to n is n*(n+1)//2
, the sum of even numbers is
the double, with n divided by 2 (n
is even here but it also works with odd numbers thanks to integer division) so:
n//2 * (n//2+1)
answered Sep 3, 2017 at 15:56
В школе на информатике в 9 классе детям преподают Python! Вообще, это классно и лучше всяких бейсиков, фортранов и паскалей. Главное, чтобы преподаватель мог хорошо объяснить и заинтересовать детей в программировании.
Соответственно, родителям приходится разбираться с домашними и самостоятельными работами по программированию:)
Вот очередная такая домашка:
В массиве случайных чисел из отрезка от 1 до 100 найти сумму всех четных элементов массива.
Решение:
import random
mas = []
sum = 0
# Генерируем массив из 18 чисел от 1 до 100:
mas = [random.randint(1,100) for i in range(1,18)]
print(mas)
# Проходим в цикле по массиву и все четные числа суммируем:
for i in mas:
if (i%2) == 0:
sum += i
print(sum)
Ответ:
[12, 36, 55, 36, 65, 81, 14, 56, 58, 59, 48, 2, 40, 76, 13, 39, 43]
378
Вариант с выводом ответа с интерполяцией строк:
import random
mas = []
sum = 0
# Генерируем массив из 18 чисел от 1 до 100:
mas = [random.randint(1,100) for i in range(1,18)]
print(‘Массив: %s’ % mas)
# Проходим в цикле по массиву и все четные числа суммируем:
for i in mas:
if (i%2) == 0:
sum += i
print(‘Сумма четных элементов: %s’ % sum)
Ответ:
Массив: [45, 18, 9, 89, 66, 47, 100, 46, 37, 39, 13, 93, 49, 55, 78, 37, 33]
Сумма четных элементов: 308
Комментарии ()
Оставьте свой комментарий
Лучший ответ
Юрий Моисеев
Оракул
(83754)
2 года назад
Нечетные отсеивать, а четные суммировать. Массив перебирать циклом range()
Остальные ответы
Сеня Сенечкин
Мудрец
(12840)
2 года назад
array = [] # тут массив
sum_numbers = 0
for number in array:
if not number % 2:
sum_numbers += number
print(sum_numbers)
Андрей
Высший разум
(267638)
2 года назад
array = […]
result = sum([v for v in array if v % 2 == 0])
Black Afgano
Просветленный
(21975)
2 года назад
# arr — исходный массив
# 1) для четных значений элементов
print(sum(filter(lambda x: x % 2 == 0, arr)))
# 2) для четных позиций элементов
print(sum(x for i, x in enumerate(arr) if i % 2 == 0))
Айран
Просветленный
(24575)
2 года назад
sum([i * ((i + 1) & 1) for i in lst])
a = [1, 2, 3, 4, -1, -3, 6, -6] res = 0 for x in a: if x > 0 and x % 2 == 0: res+=x print(res)
Похожие записи/страницы:
- Написать программу нахождения произведение всех введенных пользователем чисел, исключая нули-Python(Питон)
- Определить функцию, принимающую на вход целое число n и возвращающую список, содержащий n элементов, упорядоченных по…
- Дана целочисленная квадратная матрица. определить используя программму сумму элементов в тех строках. которые не…
- Дано целое число N (> 1) и набор из N чисел. Найти максимальную сумму двух соседних чисел из данного…
- Назовём характеристикой числа количество сомножителей в разложении этого числа на простые…
- Запросить у пользователя 2 комплексных числа в виде Re, Im. Вычислить их сумму, разность (из первого вычесть второе),…