Посчитать четные и нечетные цифры числа
Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Решение задачи на языке программирования Python
Если число делится без остатка на 2, его последняя цифра четная. Увеличиваем на 1 счетчик четных цифр even . Иначе последняя цифра числа нечетная, увеличиваем счетчик нечетных цифр odd .
В Python операцию нахождения остатка от деления выполняет знак % .
Чтобы избавиться от младшего уже учтенного разряда, число следует разделить нацело на 10. Деление нацело обозначается двумя слэшами // .
a = int(input()) even = 0 odd = 0 while a > 0: if a % 2 == 0: even += 1 else: odd += 1 a = a // 10 print(f'Even: , odd: ')
65439 Even: 2, odd: 3
Кроме чисто математического подхода в Python можно решить задачу «через строку». Мы не будем переводить введенное строковое представление числа к целочисленному типу, вместо этого переберем символы строки в цикле for . Каждый символ преобразуем к числу и проверим на четность.
a = input() even = 0 odd = 0 for i in a: if int(i) % 2 == 0: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))
Поскольку количество четных (как и нечетных) цифр ограничено, в программу можно включить что-то типа «базы данных» и проверять каждый символ на вхождение в нее.
a = input() digits = "02468" even = 0 odd = 0 for i in a: if i in digits: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))
Обратим внимание, что оператор in языка Python в заголовке цикла for обозначает иное, чем в заголовке условного оператора. Логическое выражение i in digits возвращает истину если i входит в состав digits . В иных случаях — ложь.
X Скрыть Наверх
Решение задач на Python
Определение четности числа с использованием рекурсии
Программа принимает на вход число и рекурсивно определяет, четное это число или нечетное.
Решение задачи
- Принимаем число и записываем его в переменную.
- Передаем это число в качестве аргумента в рекурсивную функцию.
- Определяем базовое условие рекурсии (т.е., базу рекурсии), при котором решение задачи тривиально и не требует дальнейшего обращения функции к самой себе. В данном случае значение переменной должно быть меньше 2 . Если это условие выполняется, то работа функции завершается.
- В противном случае мы опять рекурсивно вызываем нашу функцию, уменьшив значение переменной на 2 .
- В конце концов работа функции завершается, и по ее результату ( True или False ) мы определяем четность числа.
- Выводим конечный результат на экран.
- Конец.
Исходный код
Ниже дан исходный код для программы для рекурсивного определения четности числа. Результаты работы программы также даны ниже.
def check(n): if (n < 2): return (n % 2 == 0) return (check(n - 2)) n = int(input("Введите число:")) if (check(n) == True): print("Число четное!") else: print("Число нечетное!")
Объяснение работы программы
- Пользователь вводит число и оно записывается в переменную n .
- Число, записанное в переменную n , передается в качестве аргумента в рекурсивную функцию check() , которая в коде написана самой первой.
- Базой рекурсии является условие n < 2 . При выполнении данного условия функция прекращает свою работу и возвращает либо True , либо False .
- В противном случае, функция вызывается снова с аргументом n - 2 .
- Когда функция завершает свою работу и возвращает результат, мы на его основе определяем, четное это число или нечетное. Если функция возвращает True , то число четное, если False , то нечетное.
- Выводим результат на экран.
Результаты работы программы
Пример 1: Введите число:124 Число четное! Пример 2: Введите число:567 Число нечетное!
Как проверить число на четность в питоне
Запросить число от 1 до 99 и проверить число на четность/нечетность и разрядность. То есть например для 7 вывести “однозначное нечетное”, для 92 – “двухзначное четное”
Чтобы проверить число на четность надо узнать делится ли оно на два нацело.
Для этого надо узнать остаток от деления числа на 2, если он равен 0 то значит число четное. В python есть специальная операция для того чтобы узнать остаток от деления, работают с ней так:
x = int(input("введите x: ")) ostatok_na_2 = x % 2 print(f"Остаток от деления x на 2 равен ostatok_na_2>")
если запустить получим что-то такое

таким образом чтобы узнать является ли число четным надо сравнить остаток от деления с нулем:
x = int(input("введите x: ")) ostatok_na_2 = x % 2 if ostatok_na_2 == 0: print(f"Число x> четное")

ну а теперь надо задание допилить:
Запросить число от 1 до 99 и проверить число на четность/нечетность и разрядность. То есть например для 7 вывести “однозначное нечетное”, для 92 – “двухзначное четное”
Напишите программу, проверяющую число на четность, используя только битовые операции
В этой задаче вам необходимо реализовать функцию, которая бы проверяла число на четность, используя только битовые операции AND, OR, NOT.
Решение
Заметим, что число x нечетно только тогда, когда самый младший (то есть первый справа) бит в его двоичной записи равен 1. Докажем это. Вспомним знакомый со школьной статьи алгоритм перевода числа из двоичной системы в десятеричную. Он показан на следующей картинке:
Мы можем вынести два за скобку из всех слагаемых, кроме последнего, которое может принимать значение либо 1, либо 0. Таким образом, если оно равно нулю, то сумма будет иметь вид 2(…) = x, то есть будет делиться на два, а если оно будет равно единице, то сумма будет иметь вид 2(…)+1 = x, то есть не будет делиться на два. Это является критерием четности. Ч.т.д.
Итак, мы доказали факт того, что число нечетно, когда его младший бит равен 1, и четно, когда младший бит равен 0. Остался вопрос: как получить последний бит числа. Утверждение: последний бит числа x равен x&1, где & — побитовое И. Почему это так? И равно 1 только когда оба его аргумента равны 1. Число 1 в двоичной системе счисления имеет следующий вид: …000001 (в зависимости от того, скольки битными числами мы оперируем). А значит, при побитовом И единицы с числом х у результата все биты, кроме последнего, будут равны нулю, а последний бит будет равен 1, если в числе x он был равен 1 (1&1 = 1), и 0, если в числе x он был 0 (0&1 = 0).
Таким образом, значение выражения x&1 равно 1, если число x нечетное, и 0, если x четное.