Сумма цифр
Условие
Сумма цифр
Дано неотрицательное целое число. Выведите сумму его цифр.
Входные данные
Одно целое число \(n\) (\(0 \le n \le 10^{18}\)).
Выходные данные
Одно число — сумма цифр \(n\).
Пример
Вход:
123
Выход:
6Как решать — идея подхода
Приём: Перебор цифр (деление на 10)
Ключевое наблюдение: любая цифра числа — это остаток от деления на 10. Если после этого поделить число на 10 (целочисленно), мы «удаляем» последнюю цифру. Повторяя так, можно пройти все цифры справа налево и сложить их.
Почему приём работает: операции % 10 и // 10 именно и соответствуют разбору десятичной записи. При каждом шаге число становится меньше, значит цикл точно закончится.
План решения:
- Прочитай n.
- Если n == 0, ответ сразу 0 (это отдельный важный случай).
- Заведи переменную
ans = 0. - Пока n > 0:
ans += n % 10(добавили последнюю цифру).n //= 10(убрали последнюю цифру).- Выведи
ans.
Мини-сниппет шага: ans += n % 10 n //= 10
Сложность: O(k), где k — количество цифр (для n до 10^18 это максимум 19 шагов).
Частая ошибка: забыть обработать n = 0. Если просто сделать цикл while n > 0, он не выполнится, и важно, чтобы ответ всё равно получился 0.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать