Вычисление суммы цифр числа - распространенная задача в программировании. Рассмотрим несколько способов решения этой задачи на языке Python.

Содержание

Вычисление суммы цифр числа - распространенная задача в программировании. Рассмотрим несколько способов решения этой задачи на языке Python.

1. Базовый способ с использованием цикла

Алгоритм решения

  1. Преобразовать число в строку
  2. Пройти по каждому символу строки
  3. Преобразовать символ обратно в число
  4. Суммировать полученные цифры
Пример кода

number = 12345

sum_digits = 0

for digit in str(number):

sum_digits += int(digit)

print(sum_digits) # Вывод: 15

2. Использование генератора списка

Компактное решение

  • Преобразование числа в строку
  • Создание списка цифр
  • Суммирование элементов списка
Пример кода

number = 12345

sum_digits = sum(int(d) for d in str(number))

print(sum_digits) # Вывод: 15

3. Математический подход без строк

Алгоритм с использованием операций деления

  1. Инициализировать сумму нулем
  2. Пока число больше нуля:
    • Получить последнюю цифру (остаток от деления на 10)
    • Добавить цифру к сумме
    • Убрать последнюю цифру (целочисленное деление на 10)
Пример кода

number = 12345

sum_digits = 0

while number > 0:

sum_digits += number % 10

number = number // 10

print(sum_digits) # Вывод: 15

4. Рекурсивное решение

Функциональный подход

  • Базовый случай: если число меньше 10, вернуть само число
  • Рекурсивный случай: последняя цифра + сумма цифр оставшегося числа
Пример кода

def sum_digits(n):

return n if n < 10 else n % 10 + sum_digits(n // 10)

print(sum_digits(12345)) # Вывод: 15

5. Сравнение методов

МетодПреимуществаНедостатки
Цикл со строкойПростота пониманияНеэффективно для очень больших чисел
Генератор спискаКомпактный кодТребует преобразования типов
МатематическийРаботает только с числамиБолее сложная логика
РекурсивныйЭлегантное решениеОграничение глубины рекурсии

Другие статьи

Как безопасно отправить реквизиты карты в PDF и прочее