3 способа найти сумму цифр числа в Python

3 способа найти сумму цифр числа в Python Статьи

Введение

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

Использование цикла for

Для начала создадим переменную number, в которой будет храниться число, сумму цифр которого нужно посчитать. Также создадим переменную равную нулю:

number = 11223344
sum_digits = 0

Создадим цикл, в котором благодаря функции str() преобразуем наше число в строку, и поэлементно пройдёмся по ней. Внутри цикла во время каждой итерации будем прибавлять итерабельное значение к переменной sum_digits:

number = 11223344
sum_digits = 0
for i in str(number):
    sum_digits += int(i)

print(f"Сумма цифр числа: {sum_digits}")
# Вывод: 20

Использование цикла while

В данном способе у нас также будет присутствовать переменная sum_digits равная нулю:

number = 11223344
sum_digits = 0

Создадим цикл while, который не закончит свою работу, пока number > 0. Внутри цикла к переменной sum_digits будем прибавлять последнюю цифру нашего числа, после чего путём целочисленного деления убирать его:

number = 11223344
sum_digits = 0

while number > 0:
    sum_digits += number % 10
    number //= 10

Осталось вывести результат:

number = 11223344
sum_digits = 0

while number > 0:
    sum_digits += number % 10
    number //= 10

print(f"Сумма цифр числа: {sum_digits}")

# Вывод: Сумма цифр числа: 20

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

Для начала создадим функцию, которую назовём sum_digits(). В качестве параметра укажем n. Внутри неё зададим условие, что если n равна нулю, то возвращаем её. Если же условие не сработало, то возвращаем сумму последней цифры числа, и рекурсивный вызов функции с её отбрасыванием путём целочисленного деления:

def sum_digits(n):
    if n == 0:
        return n
    else:
        return int(n % 10) + sum_digits(int(n / 10))

Вызовем функцию и передадим в неё число:

def sum_digits(n):
    if n == 0:
        return n
    else:
        return int(n % 10) + sum_digits(int(n / 10))


number = 11223344
print(f"Сумма цифр числа: {sum_digits(number)}")

# Вывод: Сумма цифр числа: 20

Также можно сократить условие внутри функции используя тернарный оператор:

def sum_digits(n):
    return 0 if n == 0 else int(n % 10) + sum_digits(int(n / 10))


number = 11223344
print(f"Сумма цифр числа: {sum_digits(number)}")

# Вывод: Сумма цифр числа: 20

Заключение

В ходе статьи мы с Вами разобрали 3 способа найти сумму цифр числа в языке программирования Python.Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start