Как найти сумму четных цифр числа питон

Переделать паскаль в питон

  • n — исходное число,
  • sum — сумма четных чисел.
var  
   n: longint;
   sum: integer;
begin
   readln(n);    
   sum := 0;
   while n > 0 do begin
       if n mod 10 mod 2 = 0 then
           sum := sum + n mod 10;
       n := n div 10;
   end;    
   writeln(sum);
end.

Qwertiy's user avatar

Qwertiy

121k24 золотых знака121 серебряный знак291 бронзовый знак

задан 2 мар 2021 в 12:03

user432315's user avatar

5

Вроде как-то так:

print(sum(x for x in map(int, input()) if not (x & 1)))

ответ дан 2 мар 2021 в 12:12

Qwertiy's user avatar

QwertiyQwertiy

121k24 золотых знака121 серебряный знак291 бронзовый знак

print("Введите n")
n = int(input())
sum = 0

while n > 0:
    if n % 10 % 2 == 0:
        sum += n % 10
    n //= 10

print(sum)

ответ дан 2 мар 2021 в 12:23

Aimon Z.'s user avatar

Aimon Z.Aimon Z.

1,0457 серебряных знаков20 бронзовых знаков

1

Еще вариант:

a = "1234567890588"
b = sum(int(i) for i in a if ord(i) % 2 == 0)
print(a, b)

Вывод:

1234567890588 36

Или одной строкой:

print(sum(int(i) for i in input() if ord(i) % 2 == 0))

дополнительный вариант:

print(sum(int(i) for i in input() if i in "2468"))

ответ дан 2 мар 2021 в 12:34

TigerTV.ru's user avatar

TigerTV.ruTigerTV.ru

3,1851 золотой знак10 серебряных знаков21 бронзовый знак

The following article shows how given an integer list, we can produce the sum of all its odd and even digits.

Input : test_list = [345, 893, 1948, 34, 2346] 
Output : 
Odd digit sum : 36 
Even digit sum : 40 
Explanation : 3 + 5 + 9 + 3 + 1 + 9 + 3 + 3 = 36, odd summation.
Input : test_list = [345, 893] 
Output : 
Odd digit sum : 20 
Even digit sum : 12 
Explanation : 4 + 8 = 12, even summation. 

Method 1 : Using loop, str() and int()

In this, we first convert each element to string and then iterate for each of its element, and add to respective summation by conversion to integer.

Python3

test_list = [345, 893, 1948, 34, 2346]

print("The original list is : " + str(test_list))

odd_sum = 0

even_sum = 0

for sub in test_list:

    for ele in str(sub):

        if int(ele) % 2 == 0:

            even_sum += int(ele)

        else:

            odd_sum += int(ele)

print("Odd digit sum : " + str(odd_sum))

print("Even digit sum : " + str(even_sum))

Output

The original list is : [345, 893, 1948, 34, 2346]
Odd digit sum : 36
Even digit sum : 40

Time Complexity: O(n*n) where n is the length of the input list test_list, and m is the maximum number of digits in any element of the list.
Auxiliary Space:The auxiliary space complexity of this program is O(1), because the program uses a constant amount of extra space to store the odd_sum and even_sum variables, regardless of the size of the input list.

Method 2: Using loop and sum()

In this, we perform task of getting summation using sum(), and loop is used to perform the task of iterating through each element.

Python3

test_list = [345, 893, 1948, 34, 2346]

print("The original list is : " + str(test_list))

odd_sum = 0

even_sum = 0

for sub in test_list:

    odd_sum += sum([int(ele) for ele in str(sub) if int(ele) % 2 == 1])

    even_sum += sum([int(ele) for ele in str(sub) if int(ele) % 2 == 0])

print("Odd digit sum : " + str(odd_sum))

print("Even digit sum : " + str(even_sum))

Output

The original list is : [345, 893, 1948, 34, 2346]
Odd digit sum : 36
Even digit sum : 40

Time complexity: O(N * M).
Auxiliary space: O(1).

Method 3: Using list comprehension 

Python3

test_list = [345, 893, 1948, 34, 2346]

odd_sum = 0

even_sum = 0

odd_sum += sum([int(ele)

                for sub in test_list for ele in str(sub) if int(ele) % 2 == 1])

even_sum += sum([int(ele)

                 for sub in test_list for ele in str(sub) if int(ele) % 2 == 0])

print("Odd digit sum : " + str(odd_sum))

print("Even digit sum : " + str(even_sum))

Output

Odd digit sum : 36
Even digit sum : 40

Time complexity: O(nm).
Auxiliary space: O(1).

Method 4: Using the enumerate function

Python3

test_list = [345, 893, 1948, 34, 2346]

odd_sum = 0

even_sum = 0

odd_sum += sum([int(ele) for i, sub in enumerate(test_list)

                for ele in str(sub) if int(ele) % 2 == 1])

even_sum += sum([int(ele) for i, sub in enumerate(test_list)

                 for ele in str(sub) if int(ele) % 2 == 0])

print("Odd digit sum : " + str(odd_sum))

print("Even digit sum : " + str(even_sum))

Output

Odd digit sum : 36
Even digit sum : 40

The time complexity of the given program is O(n*k), where n is the number of elements in the list and k is the maximum number of digits in any element of the list.

The space complexity of the given program is O(1) because it uses a constant amount of extra space regardless of the size of the input. 

Method 5: Using recursion

Python3

def digit_sum(sub, even_sum, odd_sum):

    if not sub:

        return (even_sum, odd_sum)

    else:

        ele = sub.pop()

        if int(ele) % 2 == 0:

            even_sum += int(ele)

        else:

            odd_sum += int(ele)

        return digit_sum(sub, even_sum, odd_sum)

test_list = [345, 893, 1948, 34, 2346]

print("The original list is : " + str(test_list))

even_sum = 0

odd_sum = 0

for sub in test_list:

    sub = list(str(sub))

    even_sum, odd_sum = digit_sum(sub, even_sum, odd_sum)

print("Odd digit sum : " + str(odd_sum))

print("Even digit sum : " + str(even_sum))

Output

The original list is : [345, 893, 1948, 34, 2346]
Odd digit sum : 36
Even digit sum : 40

Time Complexity: O(n)
Auxiliary Space: O(n)

Approach: Iterative Digit Summing Approach

Steps:

  1. Initialize two variables, even_sum and odd_sum, to 0.
  2. Iterate over each number in the list using a while loop until the number becomes 0.
  3. Extract the last digit of the number using modulo operator and add it to even_sum if it is even, else add it to odd_sum.
  4. Remove the last digit from the number using integer division operator.
  5. Return both even_sum and odd_sum.

Python3

def sum_of_even_odd_digits(test_list):

    even_sum = 0

    odd_sum = 0

    for num in test_list:

        while num != 0:

            digit = num % 10

            if digit % 2 == 0:

                even_sum += digit

            else:

                odd_sum += digit

            num //= 10

    return even_sum, odd_sum

test_list = [345, 893, 1948, 34, 2346]

even_sum, odd_sum = sum_of_even_odd_digits(test_list)

print("Odd digit sum :", odd_sum)

print("Even digit sum :", even_sum)

Output

Odd digit sum : 36
Even digit sum : 40

Time Complexity: O(n * d), where n is the number of elements in the list and d is the maximum number of digits in any number in the list.

Auxiliary Space: O(1)

Last Updated :
04 Apr, 2023

Like Article

Save Article

На Питоне давно ничего не писал. Но, как мне кажется, это довольно простой и понятный вариант.
В цикл попадает, например, число «345».
Берём «5», проверяем. Не совпало, идём дальше.
Делаем целочисленное деление числа «345» на 10.
Остаётся «34», которое дальше заходит в цикл.
Берём «4», проверяем и т.д.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n = input("Введите число: ")
sum = 0
 
if n.isdigit(): #проверяем, являются ли введённые данные числом
    n = int(n) #если да, то переводим полученную строку в число, с которым будем работать
    while n != 0: 
        digit = n % 10 #здесь мы берём последнюю цифру полученного числа
        if digit % 2 == 0: #проверяем на чётность
            sum += digit #если всё в порядке, то добавляем в sum
        n //= 10 #делаем целочисленное деление на 10, чтобы убрать последнюю цифру
    print(sum)
else:
    print("Некорректный ввод") #если введённые данные не цифра, а набор символов или цифры с символами, буквами и прочим, то мы получим это сообщение.

GolovolomkaTV

+100

Решено

1 год назад

Информатика

Студенческий

PYTHON
вводится натуральное число найти сумму четных цифр входящих в его состав​

Смотреть ответ

Ответ

0
(0 оценок)

0

magomedhanovasamira2

magomedhanovasamira2
1 год назад

Светило науки — 13 ответов — 0 раз оказано помощи

Ответ:

n = list(map(int, input()))

summ = 0

for i in n:

if i % 2 == 0:

summ += i

print(summ)

(0 оценок)

Ответ

0
(0 оценок)

0

NightCATBusya
1 год назад

Светило науки — 65 ответов — 0 раз оказано помощи

a = input()
k = 0
for i in a:
if int(i) % 2 == 0:
k += int(i)
print(k)

(0 оценок)

Остались вопросы?

Задай вопрос

Найди нужный

Новые вопросы по предмету Математика

На python.сделать из реальной жизни пример словаря где значение по ключу будет являться коретежем и сделать логику на 10+ строк по работе с э …

помогите пожалуйста ​

Идея для проекта Python Подкиньте идей для программы, проекта на языке программирования Python. Нужно что-то не очень сложное, актуальное, не б …

сделать из реальной жизни пример словаря где значение по ключу будет являться кортежем и сделать логику на 10+ строк по работе с этим словарё …

помогите пожалуйста информатику программирование пайтон​

https://vashotvet.com/task/14069461

Размещено 11 месяцев назад по предмету
Информатика
от GolovolomkaTV

  1. Ответ на вопрос

    Ответ на вопрос дан
    magomedhanovasamira2

    Ответ:

    n = list(map(int, input()))

    summ = 0

    for i in n:

    if i % 2 == 0:

    summ += i

    print(summ)

  2. Ответ на вопрос

    Ответ на вопрос дан
    NightCATBusya

    a = input()
    k = 0
    for i in a:
    if int(i) % 2 == 0:
    k += int(i)
    print(k)

Не тот ответ на вопрос, который вам нужен?

Найди верный ответ

Самые новые вопросы

Никита081

Математика — 3 года назад

Сколько здесь прямоугольников

Alinashastova

История — 3 года назад

Какое управление было в древнейшем риме? как звали первого и последнего из царей рима?

diankayusupova3

Литература — 3 года назад

Уроки французского ответе на вопрос : расскажите о герое по следующему примерному плану: 1.почему мальчик оказался в райцентре ? 2.как он чувствовал себя на новом месте? 3.почему он не убежал в деревню? 4.какие отношения сложились у него с товарищами? 5.почему он ввязался в игру за деньги? 6.как характеризуют его отношения с учительницей ? ответе на эти вопросы пожалуйста ! сочините сочинение пожалуйста

tegysigalpa2012

Русский язык — 3 года назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса
1. укажите личное местоимение:
1) некто
2) вас
3) ни с кем
4) собой
2. укажите относительное местоимение:
1) кто-либо
2) некоторый
3) кто
4) нам
3. укажите вопросительное местоимение:
1) кем-нибудь
2) кем
3) себе
4) никакой
4. укажите определительное местоимение:
1) наш
2) который
3) некий
4) каждый
5. укажите возвратное местоимение:
1) свой
2) чей
3) сам
4) себя
6. найдите указательное местоимение:
1) твой
2) какой
3) тот
4) их
7. найдите притяжательное местоимение:
1) самый
2) моего
3) иной
4) ничей
8. укажите неопределённое местоимение:
1) весь
2) какой-нибудь
3) любой
4) этот
9. укажите вопросительное местоимение:
1) сколько
2) кое-что
3) она
4) нами
10. в каком варианте ответа выделенное слово является притяжательным местоимением?
1) увидел их
2) её нет дома
3) её тетрадь
4) их не спросили

pakhotnov228

Русский язык — 3 года назад

Переделай союзное предложение в предложение с бессоюзной связью.
1. океан с гулом ходил за стеной чёрными горами, и вьюга крепко свистала в отяжелевших снастях, а пароход весь дрожал.
2. множество темноватых тучек, с неясно обрисованными краями, расползались по бледно-голубому небу, а довольно крепкий ветер мчался сухой непрерывной струёй, не разгоняя зноя
3. поезд ушёл быстро, и его огни скоро исчезли, а через минуту уже не было слышно шума

ggg3288

Русский язык — 3 года назад

помогите прошу!перепиши предложения, расставляя недостающие знаки препинания. объясни, что соединяет союз и. если в предложении один союз и, то во втором выпадающем списке отметь «прочерк».пример:«я шёл пешком и,/поражённый прелестью природы/, часто останавливался».союз и соединяет однородные члены.ночь уже ложилась на горы (1) и туман сырой (2) и холодный начал бродить по ущельям.союз и соединяет:1) части сложного предложенияоднородные члены,2) однородные членычасти сложного предложения—.поэт — трубач зовущий войско в битву (1) и прежде всех идущий в битву сам (ю. янонис).союз и соединяет:1) части сложного предложенияоднородные члены,2) ​

Аккаунт удален

Физика — 3 года назад

Вокруг прямого проводника с током (смотри рисунок) существует магнитное поле. определи направление линий этого магнитного поля в точках a и b.обрати внимание, что точки a и b находятся с разных сторон от проводника (точка a — снизу, а точка b — сверху). рисунок ниже выбери и отметь правильный ответ среди предложенных.1. в точке a — «от нас», в точке b — «к нам» 2. в точке a — «к нам», в точке b — «от нас» 3. в обеих точках «от нас»4. в обеих точках «к нам»контрольная работа по физике.прошу,не наугад важно

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Что ты хочешь узнать?

Задай вопрос

Все науки

Русский яз.

Литература

Математика

Алгебра

Геометрия

Английский яз.

Немецкий яз.

Українська мова

Українська література

Беларуская мова

Қазақ тiлi

Французский яз.

Кыргыз тили

Оʻzbek tili

Биология

Химия

Физика

История

Окружающий мир

Обществознание

ОБЖ

География

Информатика

Экономика

Музыка

Право

МХК

Психология

Астрономия

Физкультура и спорт

Другие предметы

Сайт znanija.org не имеет отношения к другим сайтам и не является официальным сайтом компании.

  • Сайт
  • Главная страница
  • Напиши свой вопрос
  • Кабинет
  • Вход в личный кабинет
  • Регистрация на сайте

Понравилась статья? Поделить с друзьями:
  • Как найти основание параллелограмма не зная площадь
  • Как найти объем не полного цилиндра
  • Sql как найти по части текста
  • Как нашли нефть в башкирии
  • Как найти артикул на запчасти авто