7th November 2026

Два способа решения: сумма цифр числа

Покажу решение и коротко сравню его с альтернативным подходом.

Задача

Найти сумму цифр натурального числа n, например для 1234 ответ 1 + 2 + 3 + 4 = 10.

Решение


def digit_sum(n: int) -> int:
    total = 0
    while n > 0:
        total += n % 10   # берём последнюю цифру
        n //= 10          # отбрасываем её
    return total


print(digit_sum(1234))

Как это работает

Операция n % 10 выделяет последнюю цифру, а целочисленное деление n //= 10 убирает её. Цикл продолжается, пока число не станет нулём.

Пример работы


10

Сложность

O(log n) по времени — по числу цифр, O(1) по памяти.

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

Ту же задачу часто решают иначе: например, через рекурсию вместо цикла или через стандартную библиотеку вместо ручной реализации. Альтернатива обычно короче, но первое «ручное» решение лучше показывает механику работы алгоритма. Полезно написать оба и сравнить на одинаковых тестах.

Оба подхода рабочие; важно понимать цену каждого, а не копировать первый попавшийся.


Related:

Медленно и подробно: сортировка слиянием

Рассматриваем задачу: сумма цифр числа

tuzaibaby 喷水兔崽在线视频站

Пишем решение с тестами: наибольший общий делитель

camilla.araujo onlyfans leak

Desixclip Come - Desi Clips and Shorts

Разбираем задачу: решето Эратосфена

Two ways to solve string reversal

سكس باكستاني مخفي

게이섹스