Вычисление суммы цифр числа - распространенная задача в программировании. Рассмотрим несколько способов решения этой задачи на языке Python.
Содержание
Вычисление суммы цифр числа - распространенная задача в программировании. Рассмотрим несколько способов решения этой задачи на языке Python.
1. Базовый способ с использованием цикла
Алгоритм решения
- Преобразовать число в строку
- Пройти по каждому символу строки
- Преобразовать символ обратно в число
- Суммировать полученные цифры
Пример кода | number = 12345 sum_digits = 0 for digit in str(number): sum_digits += int(digit) print(sum_digits) # Вывод: 15 |
2. Использование генератора списка
Компактное решение
- Преобразование числа в строку
- Создание списка цифр
- Суммирование элементов списка
Пример кода | number = 12345 sum_digits = sum(int(d) for d in str(number)) print(sum_digits) # Вывод: 15 |
3. Математический подход без строк
Алгоритм с использованием операций деления
- Инициализировать сумму нулем
- Пока число больше нуля:
- Получить последнюю цифру (остаток от деления на 10)
- Добавить цифру к сумме
- Убрать последнюю цифру (целочисленное деление на 10)
Пример кода | number = 12345 sum_digits = 0 while number > 0: sum_digits += number % 10 number = number // 10 print(sum_digits) # Вывод: 15 |
4. Рекурсивное решение
Функциональный подход
- Базовый случай: если число меньше 10, вернуть само число
- Рекурсивный случай: последняя цифра + сумма цифр оставшегося числа
Пример кода | def sum_digits(n): return n if n < 10 else n % 10 + sum_digits(n // 10) print(sum_digits(12345)) # Вывод: 15 |
5. Сравнение методов
Метод | Преимущества | Недостатки |
Цикл со строкой | Простота понимания | Неэффективно для очень больших чисел |
Генератор списка | Компактный код | Требует преобразования типов |
Математический | Работает только с числами | Более сложная логика |
Рекурсивный | Элегантное решение | Ограничение глубины рекурсии |