В данной статье мы рассмотрим несколько методов решения задачи по нахождению суммы четных цифр числа в 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)
Объяснение кода
- Получаем число от пользователя с помощью функции
input()
и преобразуем его в целое число с помощью функцииint()
. Записываем результат в переменнуюnumber
. - Инициализируем переменную
even_sum
для хранения суммы четных цифр числа. На данном этапе ее значение равно 0. - Запускаем цикл
while
, который будет выполняться, пока числоnumber
больше 0. - Внутри цикла получаем последнюю цифру числа, используя получения остатка от деления на 10 —
% 10
. Результат записываем в переменнуюdigit
. - Проверяем, является ли цифра четной, проверяя остаток от деления цифры на 2. Если остаток равен 0, значит цифра четная.
- Если цифра четная, добавляем ее к сумме четных цифр
even_sum
. - Целочисленно делим число на 10 с помощью оператора
//
, чтобы отбросить последнюю цифру и перейти к следующей. - После завершения цикла выводим итоговую сумму четных цифр числа на экран.
Нахождение суммы четных цифр числа в 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)
Объяснение кода
- Пользователь вводит число с клавиатуры с помощью функции
input
. even_sum
инициализируется нулевым значением и будет использоваться для хранения суммы четных цифр числа.- В цикле
for
мы проходим по каждому символу в строкеnumber_str
. - В каждой итерации символ преобразуется в целое число с помощью функции
int(digit)
, чтобы можно было выполнить проверку на четность. - Проверяется, является ли цифра четной, используя операцию остатка от деления на 2 (
digit_int % 2 == 0
). - Если цифра четная, ее значение добавляется к переменной
even_sum
. - После завершения цикла выводится сумма четных цифр на экран с помощью функции
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))
Объяснение кода
- Функция
even_digit_sum_recursive
принимает числоnumber
в качестве аргумента и возвращает сумму четных цифр этого числа. - В начале определяется базовый случай для рекурсии: если число равно 0, то возвращается 0. Это происходит на строке
if number == 0: return 0
, что предотвращает бесконечное рекурсивное выполнение. - Если число не равно 0 (то есть не является базовым случаем), программа переходит к рекурсивному случаю.
- На строке
last_digit = number % 10
определяется последняя цифра числаnumber
, вычисляя остаток от деления числа на 10. - На строке
if last_digit % 2 == 0:
проверяется, является ли последняя цифра четной. - Если последняя цифра четная, то она добавляется к результату с помощью рекурсивного вызова функции для числа без последней цифры:
return last_digit + even_digit_sum_recursive(number // 10)
. Здесьnumber // 10
— это числоnumber
без последней цифры, так как операция//
делит число нацело, удаляя последнюю цифру. - Если последняя цифра нечетная, программа просто вызывает функцию рекурсивно для числа без последней цифры без изменения суммы.
- В основной программе пользователь запрашивает ввод числа с помощью
input("Введите число: ")
и преобразует введенную строку в целое число с помощьюint()
. - Затем вызывается функция
even_digit_sum_recursive
с введенным пользователем числом в качестве аргумента, и результат выводится на экран.