Как суммировать цифры числа в Питоне? 🧮💻 Простой способ и полезные советы
num = 12345
sum_of_digits = sum(int(digit) for digit in str(num))
print(sum_of_digits)
В этом коде мы превращаем число в строку с помощью функции str(), а затем итерируемся по каждой цифре, преобразуя ее обратно в число и суммируя их с помощью функции sum(). Результат выводится с помощью функции print().
Детальный ответ
Как суммировать цифры числа в Python
Алгоритмы суммирования цифр числа часто встречаются в различных задачах программирования. В этой статье мы рассмотрим несколько способов, как можно суммировать цифры числа в Python.
Метод 1: Используя цикл while
def sum_digits(num):
sum = 0
while num != 0:
digit = num % 10
sum += digit
num //= 10
return sum
num = 12345
result = sum_digits(num)
print(f"Сумма цифр числа {num} равна {result}")
В этом методе мы используем цикл while для итерации по каждой цифре числа. Начинаем с инициализации переменной sum как 0. Затем, пока число num не равно 0, мы извлекаем последнюю цифру числа с помощью операции остатка от деления на 10 (digit = num % 10), добавляем ее к сумме (sum += digit) и затем уменьшаем число на порядок делением на 10 (num //= 10). В конце цикла, возвращаем значение суммы.
Метод 2: Используя рекурсию
def sum_digits(num):
if num == 0:
return 0
else:
return num % 10 + sum_digits(num // 10)
num = 98765
result = sum_digits(num)
print(f"Сумма цифр числа {num} равна {result}")
В этом методе мы определяем функцию sum_digits, которая использует рекурсию для суммирования цифр числа. Если число равно 0, мы возвращаем 0. Иначе, мы возвращаем сумму последней цифры числа (num % 10) и рекурсивно вызываем функцию sum_digits для числа, уменьшенного на порядок (num // 10).
Метод 3: Используя список цифр
def sum_digits(num):
digits = [int(x) for x in str(num)]
return sum(digits)
num = 54321
result = sum_digits(num)
print(f"Сумма цифр числа {num} равна {result}")
В этом методе мы используем функцию str, чтобы преобразовать число в строку, а затем используем генератор списка и функцию int, чтобы преобразовать каждую цифру строки обратно в целое число и разместить их в списке digits. Затем мы просто вызываем функцию sum для списка digits, чтобы получить сумму всех цифр.
Метод 4: Используя сокращение цикла и операцию сложения
def sum_digits(num):
return sum(int(digit) for digit in str(num))
num = 24680
result = sum_digits(num)
print(f"Сумма цифр числа {num} равна {result}")
В этом методе мы применяем сокращение цикла (list comprehension) для создания списка цифр, используя функцию int для преобразования каждой цифры числа в целое число, и затем применяем функцию sum к этому списку для получения суммы.