Посчитать четные и нечетные цифры числа
Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Решение задачи на языке программирования 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}')
Пример выполнения:
Кроме чисто математического подхода в 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. В иных случаях – ложь.
Больше задач в PDF
Перейти к содержанию
На чтение 2 мин Просмотров 1.6к. Опубликовано 27.01.2023
Содержание
- Введение
- Написание кода программы для подсчёта чётных и нечётных цифр числа
- Заключение
Введение
В ходе статьи напишем программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python.
Написание кода программы для подсчёта чётных и нечётных цифр числа
Для начала дадим пользователю возможность ввода числа и создадим две переменные, одна для чётных цифр, вторая для нечётных:
number = int(input('Введите число: '))
# Для чётных цифр
even = 0
# Для нечётных цифр
odd = 0
Создадим цикл while, который не закончится пока number > 0:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
Внутри цикла зададим условие, если number делится на 2 без остатка, то цифра чётная и прибавляем к even единицу, если условие не сработало, то цифра нечётная и прибавляем единицу к odd:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
После условия делим number целочисленно на 10, чтобы избавиться от цифры, которая уже была проверена:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
number = number // 10
Выведем результат используя форматирование f-string:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
number = number // 10
print(f'Количество чётных цифр: {even}')
print(f'Количество нечётных цифр: {odd}')
Проверка программы:
Введите число: 9876124
Количество чётных цифр: 4
Количество нечётных цифр: 3
Заключение
В ходе статьи мы с Вами написали программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Посчитать четные и нечетные цифры числа
Просмотров 9.7к. Обновлено 29 октября 2021
- Присвоить переменным-счетчикам четных (even) и нечетных (odd) цифр значение 0.
- Пока введенное число не уменьшится до нуля выполнять нижеследующие действия:
- Если число четное (делится нацело на 2), значит последняя его цифра четная и надо увеличить на 1 переменную even.
- Иначе число нечетное и следует добавить 1 к переменной odd.
- Убрать последнюю цифру числа путем деления числа нацело на 10.
Pascal
посчитать четные и нечетные цифры числа паскаль
var n: word;
even, odd: byte;
begin
readln(n);
even := 0;
odd := 0;
while n > 0 do begin
if n mod 2 = 0 then
even := even + 1
else
odd := odd + 1;
n := n div 10;
end;
writeln('четных ', even);
writeln('нечетных ', odd);
end.
56709
четных 2
нечетных 3
Язык Си
#includemain() {
int n,even,odd;
scanf("%d",&n);
even = 0; // четные
odd = 0; // нечет.
while (n>0) {
if (n%2 == 0) even += 1;
else odd += 1;
n = n/10;
}
printf("четных - %d, нечетных - %dn", even, odd);
}
100238
четных - 4, нечетных - 2
Python
посчитать четные и нечетные цифры числа python(питон)
n = int(input())
even=odd=0
while n>0:
if n%2 == 0:
even += 1
else:
odd += 1
n = n//10
print("четных - %d, нечетных - %d" % (even, odd))
12098
четных - 3, нечетных - 2
КуМир
алг чет_нечет
нач
цел n, even, odd
ввод n
even := 0
odd := 0
нц пока n > 0
если mod(n,2) = 0 то even := even + 1
иначе odd := odd + 1
все
n := div(n,10)
кц
вывод "Четных: ", even, нс
вывод "Нечетных: ", odd
кон
308591
Четных: 2
Нечетных: 4
Basic-256
input n
even=0
odd=0
while n>0
if n%2 = 0 then
even = even + 1
else
odd = odd + 1
endif
n = n10
endwhile
print "Четных " + even
print "Нечетных " + odd
734721
Четных 2
Нечетных 4
0 / 0 / 0 Регистрация: 21.08.2017 Сообщений: 15 |
|
1 |
|
Найдите количество четных цифр данного натурального числа21.08.2017, 10:39. Показов 17892. Ответов 13
Помогите, пожалуйста, написать код, условия которого таковы: Найдите количество четных цифр данного натурального числа. Использовать цикл while
0 |
17164 / 12625 / 3314 Регистрация: 17.09.2011 Сообщений: 20,892 |
|
21.08.2017, 10:49 |
2 |
Сообщение было отмечено Walkiria как решение РешениеWalkiria, после того, как считали число, делайте следующие действия:
0 |
управление сложностью 1687 / 1300 / 259 Регистрация: 22.03.2015 Сообщений: 7,545 Записей в блоге: 5 |
|
21.08.2017, 10:52 |
3 |
Проходите циклом каждый элемент массива (строки) (предварительно конвертнув введенное число в массив символов) и проверяете на деление на 2, делится с остатком -значит нечетное, без остатка – четное. (как только определили что четное – инкриментируете переменную, в которой хранится количество четных цифр)
0 |
netBool 325 / 304 / 173 Регистрация: 16.11.2010 Сообщений: 1,069 Записей в блоге: 9 |
||||
21.08.2017, 10:55 |
4 |
|||
как-то так
0 |
17164 / 12625 / 3314 Регистрация: 17.09.2011 Сообщений: 20,892 |
|
21.08.2017, 10:57 |
5 |
netBool, подайте на вход строку “Мама мыла раму”.
0 |
jetyb 256 / 229 / 97 Регистрация: 26.10.2012 Сообщений: 674 |
||||
21.08.2017, 11:04 |
6 |
|||
Говорилось же, используя while
0 |
netBool 325 / 304 / 173 Регистрация: 16.11.2010 Сообщений: 1,069 Записей в блоге: 9 |
||||||||
21.08.2017, 11:24 |
7 |
|||||||
netBool, подайте на вход строку “Мама мыла раму”. Согласен, это без проверки
Для реальной задачи так правильней. Но для вузовского задания думаю и предыдущий вариант сгодился бы Я тут подумал, что можно вообще в одну строчку все засунуть
PS: Валькирия, ты только эту строчку преподу не показывай. Думаю, раскусит
0 |
Taurusfk 44 / 45 / 41 Регистрация: 28.06.2017 Сообщений: 133 |
||||
21.08.2017, 23:33 |
8 |
|||
0 |
17164 / 12625 / 3314 Регистрация: 17.09.2011 Сообщений: 20,892 |
|
21.08.2017, 23:56 |
9 |
netBool, netBool, Taurusfk, каждый раз, когда кто-то решает задачу по работе с числами с помощью строк, где-то мучительной насильственной смертью погибает котенок. Никогда об этом не забывайте. Если в такую программу подть на ввод строку “00000001”, то натуральное число будет равно единице, а количество четных цифр в единице будет почему-то семь. Вот товарищ jetyb выше сделал все правильно. В конце, правда, не удержался от бито
любства, ну да ладно.
2 |
Taurusfk 44 / 45 / 41 Регистрация: 28.06.2017 Сообщений: 133 |
||||
22.08.2017, 12:10 |
10 |
|||
kolorotur,
1 |
kolorotur 17164 / 12625 / 3314 Регистрация: 17.09.2011 Сообщений: 20,892 |
||||
22.08.2017, 12:18 |
11 |
|||
Вот эту часть можно упростить до
0 |
44 / 45 / 41 Регистрация: 28.06.2017 Сообщений: 133 |
|
22.08.2017, 12:20 |
12 |
kolorotur, согласен, перемудрил
0 |
Pikemaster 309 / 309 / 215 Регистрация: 24.09.2013 Сообщений: 771 |
||||
22.08.2017, 15:37 |
13 |
|||
0 |
Desead 2 / 2 / 0 Регистрация: 14.08.2015 Сообщений: 35 |
||||
22.08.2017, 21:36 |
14 |
|||
0 |
Суть кода в том что – ‘Пользователь вводит число (a). Найти количество всех нечетных чисел, на диапазоне
Я настрогал пару строчек кода, но все равно не выходит в ответе. Когда ввожу даже 1 число просто ничего не выводиться, и даже причину не могу понять.
a= input('Введите первое число:')
def sum():
if a / 2 == 0:
print ('четное число')
else:
print ('Нечетное число')
GrAnd
13.4k1 золотой знак8 серебряных знаков23 бронзовых знака
задан 15 янв 2022 в 10:37
1
Я так понимаю, тебе нужно найти количество чётных чисел в определенном вводимом диапазоне.
num1 = int(input('Введи первое число: ')) // Пользователь вводит первое число
num2 = int(input ('Введите второе число: ')) // Пользователь вводит второе число
k = 0 // Добавляем переменную куда будем плюсовать количество чётных чисел
for i in range(num1,num2+1): // Создаём цикл в диапазоне введённых цифр (+1 во втором аргументе, потому что в range доходит ДО числа, а не ДО ВКЛЮЧИТЕЛЬНО этого числа)
if i % 2 == 0: // Проверяем на чётность (если чётное делаем:)
k +=1 // Если число чётное +1
print (k)
ответ дан 15 янв 2022 в 11:18
BnLvTBnLvT
285 бронзовых знаков
- Введённое значение преобразовать в число при помощи функции
int()
. - Проверять остаток от деления
a % 2 == 0
. - Ну и функцию таки следует вызвать
sum()
.
a = int(input('Введите первое число: '))
def sum():
if a % 2 == 0:
print ('четное число')
else:
print ('Нечетное число')
sum()
P.S. Вообще-то есть встроенная функция с таким именем, так что называя свою так же вы лишаетесь доступа к ней. Так что лучше не называть что-либо стандартными именами.
ответ дан 15 янв 2022 в 10:48
GrAndGrAnd
13.4k1 золотой знак8 серебряных знаков23 бронзовых знака