Top.Mail.Ru

Перечень алгоритмов

15. Сумма цифр в списке чисел

Дан список:

a= [12,22,33,44,55,66,77,88,99,0]

 

Способ 1. Использование цикла for и str()

b = []
for x in a:
   sm =
0
  
for digit in str(x):
       sm +=
int(digit)
   b.append(sm)
print("сумма цифр=", b)

# сумма цифр= [3, 4, 6, 8, 10, 12, 14, 16, 18, 0]
Временная сложность: O (n * k),
где n- количество элементов в списке,
    k - среднее количество цифр в каждом числе

 

Способ 2. Использование цикла for и while

b = []
for x in a:
   sm =
0
  
while x > 0:
         digit = x%
10
        
sm += digit
         x=x//
10
  
b.append(sm)
print("сумма цифр=", b)

# сумма цифр= [3, 4, 6, 8, 10, 12, 14, 16, 18, 0]
Временная сложность: O (n * k),
где n– количество элементов в списке,
   k - среднее количество цифр в каждом числе

 

Способ 3. Использование цикла for и функции sum

b = []
for x in a:
       sm =
sum(int(digit) for digit in str(x))
       b.append(sm)
print("сумма цифр=", b)

# сумма цифр= [3, 4, 6, 8, 10, 12, 14, 16, 18, 0]
Временная сложность: O (n * k),
где n- элементы в списке,
   k - среднее количество цифр в каждом числе

 

Способ 4. Использование генератора


b = [sum(int(digit) for digit in str(x)) for x in a]
print("сумма цифр=", b)
# сумма цифр= [3, 4, 6, 8, 10, 12, 14, 16, 18, 0]
Временная сложность: O (n * k),
где n– количество элементов в списке,
   k - среднее количество цифр в каждом числе