Сумма цифр

тема: Основы · уровень: средний

Условие

Сумма цифр

Дано неотрицательное целое число. Выведите сумму его цифр.

Входные данные

Одно целое число \(n\) (\(0 \le n \le 10^{18}\)).

Выходные данные

Одно число — сумма цифр \(n\).

Пример

Вход:

123

Выход:

6

Как решать — идея подхода

Приём: Перебор цифр (деление на 10)

Ключевое наблюдение: любая цифра числа — это остаток от деления на 10. Если после этого поделить число на 10 (целочисленно), мы «удаляем» последнюю цифру. Повторяя так, можно пройти все цифры справа налево и сложить их.

Почему приём работает: операции % 10 и // 10 именно и соответствуют разбору десятичной записи. При каждом шаге число становится меньше, значит цикл точно закончится.

План решения:

Мини-сниппет шага: ans += n % 10 n //= 10

Сложность: O(k), где k — количество цифр (для n до 10^18 это максимум 19 шагов).

Частая ошибка: забыть обработать n = 0. Если просто сделать цикл while n > 0, он не выполнится, и важно, чтобы ответ всё равно получился 0.

Решить задачу с автопроверкой на Python →

Куда дальше