Сумма цифр числа в Python

В этой статье мы разберем, как определяется сумма цифр числа при помощи кода на Python. Давайте сразу на простом примере поясним, что имеется в виду. Для вычисления такой суммы мы просто складываем цифры, которыми записано число, и при этом игнорируем их разряды. Допустим, у нас есть число 567. Мы можем вычислить сумму его цифр как 5 + 6 + 7 и получить ответ 18.

БЕСПЛАТНО СКАЧАТЬ КНИГИ по Python на русском языке можно у нас в телеграм канале "Python книги на русском"

Наша цель состоит в том, чтобы определить сумму цифр числа, переданного в качестве входных данных в коде на Python.

Пример:

n = 54
Результат: 9

n = 121 
Результат: 4

Сначала мы разбиваем число на отдельные цифры, а затем в качестве результата получаем сумму этих цифр. Чтобы разбить число на цифры, мы можем использовать оператор деления по модулю %, а затем, чтобы сократить число на разряд, можем использовать оператор целочисленного деления //.

Различные способы нахождения суммы цифр числа

Использование встроенных функций str() и int()

Чтобы преобразовать число в строку, используется функция str(). Для преобразования цифровых символов в целое число используется функция int().

Мы преобразуем число в строку и при помощи цикла перебираем все цифровые символы этой строки. В каждой итерации число, обозначаемое текущей цифрой, прибавляется к общей сумме.

Порядок алгоритма:

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

Код примера:

# Функция для получения суммы цифр числа
def getSum(n):
    
    sum = 0
    for digit in str(n): 
      sum += int(digit)      
    return sum
   
n = 569
print(getSum(n))

# Результат
# 20

Использование итерации

Здесь сумма цифр числа вычисляется при помощи цикла. Циклы используются для непрерывного выполнения определенного фрагмента кода. В языке Python циклы создаются при помощи операторов for и while.

Чтобы получить крайнюю правую цифру нашего числа, мы можем использовать тот факт, что она равна остатку от деления на 10. В Python для получения остатка от деления используется оператор %. Далее, чтобы перейти к следующей цифре, мы производим целочисленное деление на 10.

Порядок алгоритма:

  1. Создаем функцию для нахождения суммы цифр числа n
  2. Объявляем переменную sum для хранения суммы цифр
  3. Создаем цикл while, который будет работать, пока значение n будет больше 0
  4. Остаток от деления числа на 10 прибавляем к переменной sum
  5. Меняем n на n // 10 (результат целочисленного деления на 10)
  6. Получаем число от пользователя
  7. Вызываем созданную ранее функцию и передаем ей в качестве аргумента полученное на предыдущем шаге число
  8. Выводим в консоль результат работы данной функции.

Пример кода:

# Функция для получения суммы цифр числа 
def getSum(n):
    
    sum = 0
    while (n != 0):
       
        sum = sum + (n % 10)
        n = n//10
       
    return sum
   
n = 569
print(getSum(n))

# Результат
# 20

Использование рекурсии

Рекурсия – это процесс решения задачи при помощи определения более простой версии этой самой задачи. Соответствующая функция называется рекурсивной. Использование рекурсии позволяет обойтись без применения циклов.

Алгоритм поиска суммы цифр числа при помощи рекурсии:

  • Создаем функцию для нахождения суммы цифр числа n
  • Если число n меньше 10, то в качестве значения возвращается n
  • В противном случае находим остаток от деления на 10 и производим целочисленное деление на 10
  • Рекурсивно вызываем нашу функцию, передавая ей в качестве аргумента n // 10
  • Добавляем остаток от деления на 10 к значению, которое возвращает функция
  • Получаем число от пользователя
  • Вызываем созданную ранее функцию и передаем ей в качестве аргумента полученное на предыдущем шаге число
  • Выводим в консоль результат работы данной функции.

Пример кода:

# Функция для получения суммы цифр числа 
   
def sumDigits(no):
    return 0 if no == 0 else int(no % 10) + sumDigits(int(no / 10)) 
   
# Работа кода
n = 569
print(sumDigits(n))

# Результат
# 20

Использование метода sum()

Метод sum() используется для нахождения суммы всех чисел в переданном списке.

Сначала мы преобразуем число в строку при помощи метода str(). Затем мы разбиваем строку и преобразуем ее в список чисел при помощи методов split() и map() соответственно. А потом вычисляем сумму всех чисел данного списка при помощи метода sum().

Порядок алгоритма:

  1. Создаем функцию для нахождения суммы цифр числа n
  2. Преобразуем число в строку при помощи метода str()
  3. Затем разбиваем строку и преобразуем ее в список чисел при помощи методов split() и map() соответственно
  4. Для вычисления суммы чисел, входящих в список, вызывается метод sum().

Пример кода:

# Функция для получения суммы цифр числа
def getSum(n):
     
    strr = str(n)
    list_of_number = list(map(int, strr.strip()))
    return sum(list_of_number)
   
n = 569
print(getSum(n))

# Результат
# 20

Заключение

Сумма цифр числа — это сумма всех чисел, обозначаемых цифрами, которыми записано это число. Например, сумма цифр десятичного числа 9045 будет равна сумме чисел 9, 0, 4 и 5. То есть 9 + 0 + 4 + 5 = 18.

Найти сумму цифр числа можно разными способами. Мы разобрали использование встроенных функций, применение рекурсии и циклов.

Перевод статьи “Sum of Digits of a Number in Python”.

3 комментария к “Сумма цифр числа в Python”

  1. nedostupnost6

    В последнем алгоритме написано, что применяем метод split() и map(), а в примере уже показан strip() и map()

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *