Количество четных и нечетных цифр числа
Написать программу, подсчитывающую количество четных и нечетных цифр числа.
- even — количество четных цифр
- uneven — количество нечетных цифр
Алгоритм решения задачи:
- Если число делится без остатка на 2, значит его последняя цифра четная (увеличиваем переменную even ). Иначе последняя цифра нечетная, тогда увеличиваем на 1 значение uneven ).
- Избавляемся от младшего разряда числа, разделив его нацело ( div ) на 10.
Программа на языке Паскаль:
var a: longint; even, uneven: byte; begin readln(a); even := 0; uneven := 0; while a > 0 do begin if (a mod 2) = 0 then even := even + 1 else uneven := uneven + 1; a := a div 10; end; writeln('Even: ', even); writeln('Uneven: ', uneven); end.
Пример выполнения программы:
84521 Even: 3 Uneven: 2
ФМЛ № 31. Кружок Phyton.Начало: домашнее задание — 4
Можно решить задачу while-ом, находить последнюю цифру модулем 10, прибавлять к ответу найденную цифру и исключать уже найденную цифру из числа целочисленным делением на 10, это будем продолжать пока наше число больше нуля. Например, N=123, 123%10=2; 123/10=12, 12%10 =2 и т.д.
Дано натуральное число N. Напишите функцию int SumOfDigits (int n) (C/C++), function SumOfDigits (n:longint):integer (Pascal), вычисляющую сумму цифр числа N.
Входные данные
Задано единственное число N
Выходные данные
Необходимо вывести сумму цифр числа N.
Напишите программу, которая считает количество чётных цифр введённого числа. ПИТОН.
Вадим Гуру (2530) Решение согласно условию, сколько четных чисел в числе, тут 2 варианта или четное или нет. Понятно, что хотят, даже скорее всего хотят через целочисленное деление, но сформулируйте нормально )))
Остальные ответы
Чем питон лучше удава? )
Максим АмыловГуру (4916) 11 месяцев назад
len([i for i in [int(j) for j in input()] if i % 2])
ВадимГуру (2530) 5 лет назад
А зачем строку полученную через input еще раз приводить к строке?
DONER KEBAB Просветленный (34255) для пущей уверенности)
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Профи (878) 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.
Посчитать четные и нечетные цифры числа
Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Решение задачи на языке программирования 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