Вот несколько способов найти сумму цифр трехзначного числа в Python:
Способ 1: Использование целочисленного деления и остатка от деления (математический подход)
Это классический способ, который работает для чисел любой разрядности.
Python
Number = 345
# Находим последнюю цифру (единицы)
Digit1 = number % 10 # 345 % 10 = 5
# Удаляем последнюю цифру, оставляя десятки и сотни
Remaining_number = number // 10 # 345 // 10 = 34
# Находим вторую цифру (десятки)
Digit2 = remaining_number % 10 # 34 % 10 = 4
# Удаляем вторую цифру, оставляя только сотни
Digit3 = remaining_number // 10 # 34 // 10 = 3
Sum_of_digits = digit1 + digit2 + digit3
Print(f"Дано число: {number}")
Print(f"Цифры: {digit3}, {digit2}, {digit1}")
Print(f"Сумма цифр: {sum_of_digits}")
# Вывод:
# Дано число: 345
# Цифры: 3, 4, 5
# Сумма цифр: 12
Способ 2: Преобразование в строку (более "питоновский" и гибкий подход)
Это, пожалуй, самый распространенный и удобный способ в Python, особенно если вы не знаете заранее, сколько цифр в числе.
Python
Number = 789
# Преобразуем число в строку
Num_str = str(number)
Sum_of_digits = 0
# Проходим по каждому символу в строке
For digit_char in num_str:
# Преобразуем символ обратно в целое число и добавляем к сумме
sum_of_digits += int(digit_char)
Print(f"Дано число: {number}")
Print(f"Сумма цифр: {sum_of_digits}")
# Вывод:
# Дано число: 789
# Сумма цифр: 24
Этот подход легко обобщается для чисел любой длины:
Python
Def sum_digits_from_string(n):
num_str = str(n)
total_sum = 0
for digit_char in num_str:
total_sum += int(digit_char)
return total_sum
Print(sum_digits_from_string(123)) # 6
Print(sum_digits_from_string(98765)) # 35
Print(sum_digits_from_string(100)) # 1
Способ 3: С использованием Map() и Sum() (краткий вариант строкового подхода)
Это еще более краткий способ, использующий встроенные функции map() и sum().
Python
Number = 123
# Преобразуем число в строку,
# затем map() применяет функцию int() к каждому символу строки,
# превращая ее в итерируемый объект чисел.
# sum() суммирует эти числа.
Sum_of_digits = sum(map(int, str(number)))
Print(f"Дано число: {number}")
Print(f"Сумма цифр: {sum_of_digits}")
# Вывод:
# Дано число: 123
# Сумма цифр: 6
Выбор способа:
- Для трехзначного числа (или числа с фиксированным, небольшим количеством цифр):
- Математический подход (% 10 и // 10) более наглядно демонстрирует арифметические операции с цифрами. Преобразование в строку (Str(), Map(), Sum()) является более гибким и масштабируемым решением для чисел любой длимости, и часто считается более "питоновским".
Для чисел произвольной длины: Определенно используйте подход с Преобразованием в строку (либо через цикл, либо с map() и sum()). Он универсален и лаконичен.