Как найти сумму четных цифр числа в Python

Обложка к статье "Сумма четных цифр числа в Python"

В данной статье мы рассмотрим несколько методов решения задачи по нахождению суммы четных цифр числа в Python с использованием различных подходов. Сначала рассмотри методы с использованием математических и строковых операций, а в конце познакомимся с применение рекурсии для решения данной задачи.

Нахождение суммы четных цифр числа в Python с помощью математических операций

Для нахождения суммы четных цифр числа с помощью математических операций, мы можем использовать следующий подход. Мы будем получать остаток от деления на 10 и проверять каждую цифру на четность. Если цифра четная, то мы добавляем ее к общей сумме. Далее, целочисленно делим число на 10, чтобы перейти к следующей цифре, и так продолжаем до тех пор, пока число не станет равным 0.

Пример кода

# Получаем число от пользователя
number = int(input("Введите число: "))

# Инициализируем переменную для хранения суммы четных цифр
even_sum = 0

# Пока число не равно 0
while number > 0:
    # Получаем последнюю цифру числа
    digit = number % 10
    # Проверяем четность цифры
    if digit % 2 == 0:
        # Если цифра четная, добавляем ее к сумме
        even_sum += digit
    # Целочисленно делим число на 10, чтобы перейти к следующей цифре
    number //= 10

# Выводим результат
print("Сумма четных цифр числа:", even_sum)

Объяснение кода

  1. Получаем число от пользователя с помощью функции input() и преобразуем его в целое число с помощью функции int(). Записываем результат в переменную number.
  2. Инициализируем переменную even_sum для хранения суммы четных цифр числа. На данном этапе ее значение равно 0.
  3. Запускаем цикл while, который будет выполняться, пока число number больше 0.
  4. Внутри цикла получаем последнюю цифру числа, используя получения остатка от деления на 10 — % 10. Результат записываем в переменную digit.
  5. Проверяем, является ли цифра четной, проверяя остаток от деления цифры на 2. Если остаток равен 0, значит цифра четная.
  6. Если цифра четная, добавляем ее к сумме четных цифр even_sum.
  7. Целочисленно делим число на 10 с помощью оператора //, чтобы отбросить последнюю цифру и перейти к следующей.
  8. После завершения цикла выводим итоговую сумму четных цифр числа на экран.

Нахождение суммы четных цифр числа в Python с помощью строковых операций

Мы можем использовать другой подход для нахождения суммы четных цифр числа. В этом подходе мы не будем сразу переводить полученную строку от пользователя в числовой формат, а пройдёмся по каждому символы строки, переведём его в число и проверим на чётность путем получения остатка от деления на 2.

Пример кода

# Получаем число от пользователя
number_str = input("Введите число: ")

# Инициализируем переменную для хранения суммы четных цифр
even_sum = 0

# Проходим по каждому символу в строке
for digit in number_str:
    # Преобразуем символ обратно в целое число
    digit_int = int(digit)
    # Проверяем четность числа
    if digit_int % 2 == 0:
        # Если число четное, добавляем его к сумме
        even_sum += digit_int

# Выводим сумму четных цифр на экран
print("Сумма четных цифр числа:", even_sum)

Объяснение кода

  1. Пользователь вводит число с клавиатуры с помощью функции input.
  2. even_sum инициализируется нулевым значением и будет использоваться для хранения суммы четных цифр числа.
  3. В цикле for мы проходим по каждому символу в строке number_str.
  4. В каждой итерации символ преобразуется в целое число с помощью функции int(digit), чтобы можно было выполнить проверку на четность.
  5. Проверяется, является ли цифра четной, используя операцию остатка от деления на 2 (digit_int % 2 == 0).
  6. Если цифра четная, ее значение добавляется к переменной even_sum.
  7. После завершения цикла выводится сумма четных цифр на экран с помощью функции print.

Нахождение суммы четных цифр числа в Python с помощью рекурсии

Для нахождения суммы четных цифр числа мы можем использовать рекурсию. Для этого мы напишем функцию, которая будет вызывать сама себя.

Пример кода

def even_digit_sum_recursive(number):
    # Базовый случай: если число равно 0, возвращаем 0
    if number == 0:
        return 0
    # Рекурсивный случай: вызываем функцию для числа, без последней цифры
    # и добавляем последнюю цифру к сумме, если она четная
    last_digit = number % 10
    if last_digit % 2 == 0:
        return last_digit + even_digit_sum_recursive(number // 10)
    else:
        return even_digit_sum_recursive(number // 10)

# Просим пользователя ввести число
number = int(input("Введите число: "))
# Вызываем функцию и выводим результат
print("Сумма четных цифр числа", number, ":", even_digit_sum_recursive(number))

Объяснение кода

  1. Функция even_digit_sum_recursive принимает число number в качестве аргумента и возвращает сумму четных цифр этого числа.
  2. В начале определяется базовый случай для рекурсии: если число равно 0, то возвращается 0. Это происходит на строке if number == 0: return 0, что предотвращает бесконечное рекурсивное выполнение.
  3. Если число не равно 0 (то есть не является базовым случаем), программа переходит к рекурсивному случаю.
  4. На строке last_digit = number % 10 определяется последняя цифра числа number, вычисляя остаток от деления числа на 10.
  5. На строке if last_digit % 2 == 0: проверяется, является ли последняя цифра четной.
  6. Если последняя цифра четная, то она добавляется к результату с помощью рекурсивного вызова функции для числа без последней цифры: return last_digit + even_digit_sum_recursive(number // 10). Здесь number // 10 — это число number без последней цифры, так как операция // делит число нацело, удаляя последнюю цифру.
  7. Если последняя цифра нечетная, программа просто вызывает функцию рекурсивно для числа без последней цифры без изменения суммы.
  8. В основной программе пользователь запрашивает ввод числа с помощью input("Введите число: ") и преобразует введенную строку в целое число с помощью int().
  9. Затем вызывается функция even_digit_sum_recursive с введенным пользователем числом в качестве аргумента, и результат выводится на экран.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий