Главная страница » Дано трехзначное число найдите сумму его цифр python

Дано трехзначное число найдите сумму его цифр python

Вот несколько способов найти сумму цифр трехзначного числа в 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()). Он универсален и лаконичен.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх