Посчитать четные и нечетные цифры числа
Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Решение задачи на языке программирования 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: even>, odd: 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
ФМЛ № 31. Кружок Phyton.Начало: домашнее задание — 4
Напишите программу, которая считает количество чётных цифр введённого числа.
Входные данные
Входная строка содержит одно натуральной число N .
Выходные данные
Программа должна вывести количество чётных цифр введённого числа.
Входные данные
123456
Выходные данные
Входные данные
13579
Выходные данные
Сдать: для сдачи задач необходимо войти в систему
Ограничения
2 сек.
64 MiB
Список задач
- A. Сумма цифр числа
- B. Количество нулей
- C. Минимальная и максимальная цифры
- D. Обращение числа
- E. Список степеней двойки
- F. Чётные цифры
- G. Две одинаковые цифры рядом
- H. Все одинаковые цифры
Вы используете гостевой доступ (Вход)
Эта страница: General type: incourse. Context Условия задач: домашнее задание — 4 (context id 396673). Page type mod-statements-view.
Количество чётных цифр введённого числа
Напишите программу, которая считает количество чётных цифр введённого числа используя рекурсию.
Входные данные
Входная строка содержит одно натуральной число N .
Выходные данные
Программа должна вывести количество чётных цифр введённого числа.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Вывести количество четных цифр числа
Написать программу, которая выводит на экран количество четных цифр числа
Найти и вывести количество и сумму чётных цифр в десятичной записи числа N
День добрый, помогите в решении этой задачи. Сам бы решил, но времени нет, да и Python я забыл. .
Найти сумму и количество четных цифр, стоящих на нечетных местах в записи исходного числа
Вводим число. Найти сумму и количество четных цифр, стоящих на нечетных местах в записи исходного.
Найти сумму и количество четных цифр, стоящих на нечетных местах в записи исходного числа.
piton21, а можете подсказать по другой программе. Условие: Найти сумму и количество четных.
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
1 2 3 4 5 6 7
n = input() def r(n): if not n: return 0 else: return (not int(n[0])%2)+r(n[1:]) print(r(n))
грубовато, но всё же
13513 / 10761 / 6416
Регистрация: 18.12.2011
Сообщений: 28,735
1 2 3 4 5 6 7
def r(n): k=0; for i in n : k+=not int(i)%2 return k num = input('n=') print(r(num))
zss, так ТС хочет же рекурсию.
Меню пользователя @ u235 |
636 / 476 / 179
Регистрация: 28.05.2012
Сообщений: 1,414
1 2 3 4 5 6 7 8 9 10 11 12
def count_even(n): global s if n > 0: n, d = divmod(n, 10) if not d & 1: s += 1 count_even(n) return s s = 0 print(count_even(int(input())))
13513 / 10761 / 6416
Регистрация: 18.12.2011
Сообщений: 28,735
Код Vigi без глобальной переменной
1 2 3 4 5 6 7 8 9 10 11
def count_even(n,s): if n == 0: return s n, d = divmod(n, 10) if not d & 1: s += 1 return count_even(n,s) n = int( input('n=') ) s = count_even(n,0) print(s)
p.s. А нельзя ли эту задачу решить в одну строчку используя, например, функцию sum?
Я изучаю Pyhon третий день и что-то пока не придумал.
636 / 476 / 179
Регистрация: 28.05.2012
Сообщений: 1,414
zss,
Тогда уж так:
1 2 3 4 5 6 7 8 9 10
def count_even(n, s=0): if n == 0: return s n, d = divmod(n, 10) if not d & 1: s += 1 return count_even(n, s) print(count_even(int(input('n='))))
Добавлено через 1 минуту
Сообщение от zss
А нельзя ли эту задачу решить в одну строчку используя, например, функцию sum?
а хз думать нужно, а я сегодня малость не в состоянии . ик
Добавлено через 19 минут
zss,
в одну строку но правда без рекурсии:
print(len([i for i in list(input('n=')) if not int(i) & 1]))
13513 / 10761 / 6416
Регистрация: 18.12.2011
Сообщений: 28,735
Vigi, ну, Ваш код эквивалентен такому
1 2 3 4 5 6 7
n=input('n=') L=list(n) S=[] for i in L : if not int(i) & 1 : S.append(i) print(len(S))
просто записанному в одну строку.
Я имел ввиду что-то аналогичное функциям из algorithm в STL, типа
int num_items1 = std::count_if(n.begin(), n.end(), [](int i) {return i % 2 == 0;})
4921 / 2674 / 550
Регистрация: 07.11.2019
Сообщений: 4,397
в одну строчку, правда без рекурсии..
c=sum([i in '02468' for i in str(n)])
Добавлено через 5 минут
если не делать перевод в int на входе, то можно и без str()
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
r=lambda n:0 if not n else (not int(n[0])%2)+r(n[1:]) print(r(input()))
с рекурсией только в 2 строки
Просто Лис
5761 / 3553 / 1063
Регистрация: 17.05.2012
Сообщений: 10,392
Записей в блоге: 9
1 2 3 4 5 6 7
def f(n): print(n) if n == 0: return 0 return (n % 10) % 2 + f(n // 10) print('r =', f(199))
Правда, считает количество нечётных цифр.
Добавлено через 1 минуту
1 2 3 4 5 6 7 8
def f(n): print(n) if n == 0: return 0 n, d = divmod(n, 10) return d % 2 + f(n) print('r =', f(199))
Status 418
4578 / 2345 / 602
Регистрация: 26.11.2017
Сообщений: 5,265
Записей в блоге: 3
f = lambda x: (x % 2 == 0) + f(x//10) if x else 0
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Есть ли среди цифр введенного трехзначного числа — одинаковые
Составьте алгоритм определяющий, есть ли среди цифр введенного трехзначного числа — одинаковые.
На промежутке от а до б найти количество элементов у которых произведение четных цифр больше самого числа
На промежутке от а до б найти количество элементов у которых произведение четных цифр больше.
Найдите сумму цифр введенного числа
Найдите сумму цифр введенного числа. Решите задачу в одну строку. Используйте списочное выражение.
Выведите число, составленное из цифр введенного числа в обратном порядке
Помогите пожалуйста с решением, В задаче нельзя использовать списки, срезы и сортировку, заранее.
Сформировать возрастающий список из чётных чисел до введенного числа (включая его, если число чётное)
Сформировать возрастающий список из чётных чисел до введенного числа (включая его, если число.
Напишите программу, которая считает количество чётных цифр введённого числа
Напишите программу, которая считает количество чётных цифр введённого числа. Входные данные.
Или воспользуйтесь поиском по форуму:
Напишите программу, которая считает количество чётных цифр введённого числа. ПИТОН.
Вадим Гуру (2551) Решение согласно условию, сколько четных чисел в числе, тут 2 варианта или четное или нет. Понятно, что хотят, даже скорее всего хотят через целочисленное деление, но сформулируйте нормально )))
Остальные ответы
Чем питон лучше удава? )
Максим АмыловМыслитель (5611) 1 год назад
len([i for i in [int(j) for j in input()] if i % 2])
ВадимГуру (2551) 6 лет назад
А зачем строку полученную через input еще раз приводить к строке?
DONER KEBAB Просветленный (34282) для пущей уверенности)
print(sum(int(i) % 2 == 0 for i in input()))
a = input()
b = []
for i in a:
if i % 2 == 0:
b.append(i)
print(b)
VenomПрофи (888) 4 года назад
LOL! Но лучше пощдно, чем никогда
Анисимов ЮрийУченик (232) 3 года назад
Дай надпись «Лучший ответ», пожалуйста, если не сложно
numbers = int(input(‘Введите число ‘))
decimal_numbers = 0
decimal = 0
while True:
decimal % 2
decimal += 1
if decimal % 2 == 0:
decimal_numbers += 1
if decimal == numbers:
break
print(‘Четных чисел’, decimal_numbers)
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.