Как найти количество четных цифр числа

Посчитать четные и нечетные цифры числа

Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.

Решение задачи на языке программирования 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.7к. Опубликовано 27.01.2023

Содержание

  1. Введение
  2. Написание кода программы для подсчёта чётных и нечётных цифр числа
  3. Заключение

Введение

В ходе статьи напишем программу для подсчёта чётных и нечётных цифр в числе на языке программирования 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. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin

Kalighost

1 / 1 / 1

Регистрация: 26.02.2018

Сообщений: 155

1

Сколько четных цифр в числе?

12.09.2018, 23:11. Показов 20301. Ответов 3

Метки четные (Все метки)


Студворк — интернет-сервис помощи студентам

Дано целое число n. Требуется найти количество четных цифр в записи этого числа отличных от нуля.

пример: 42 = 2 четных числа; 13 = 0 четных;

в чем проблема: если ввести 100500, то правильный ответ 0, так как только натуральные цифры четные, ноль не считаем. Помогите дописать мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main(){
    int n, res = 0;
    cin >> n;
 
    while(n){
       int tmp =n % 10;
       if(!(tmp % 2))
       res++;
       n /= 10;
    }
 
    cout << res << endl;
 
    system("pause");
    return 0;
}

Буду благодарен за помощь!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

12.09.2018, 23:11

3

Farost

78 / 3 / 2

Регистрация: 03.10.2015

Сообщений: 26

12.09.2018, 23:16

2

Лучший ответ Сообщение было отмечено Kalighost как решение

Решение

В чем проблема просто добавить второе условие?

C++
1
2
3
4
5
6
while(n){
       int tmp =n % 10;
       if(!(tmp % 2) && tmp!=0)
       res++;
       n /= 10;
    }



1



1 / 1 / 1

Регистрация: 26.02.2018

Сообщений: 155

12.09.2018, 23:22

 [ТС]

3

Оу, мда, точно, спасибо большое Вам!



0



vlisp

594 / 914 / 149

Регистрация: 10.08.2015

Сообщений: 4,775

13.09.2018, 00:29

4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
int main(){
 
    int n, res = 0;
    
    cin >> n;
 
    while (n) {
     
       if(!(n % 10 % 2)) res++;
       
       n /= 10;
       
    }
 
    cout << res << endl;
 
    system("pause");
    
    return 0;
    
}



1



Посчитать четные и нечетные цифры числа

Просмотров 9.9к. Обновлено 29 октября 2021

  1. Присвоить переменным-счетчикам четных (even) и нечетных (odd) цифр значение 0.
  2. Пока введенное число не уменьшится до нуля выполнять нижеследующие действия:
    1. Если число четное (делится нацело на 2), значит последняя его цифра четная и надо увеличить на 1 переменную even.
    2. Иначе число нечетное и следует добавить 1 к переменной odd.
    3. Убрать последнюю цифру числа путем деления числа нацело на 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

Язык Си


#include

main() {
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

Дано целое число n. Требуется найти количество четных цифр в записи этого числа отличных от нуля.

Хотелось бы услышать от Вас, как мне реализовать данную программу.

Вот мои наработки:

#include <iostream>


using namespace std;

int main() {
    int a, b = 0, c = 0;
    cin >> a;
    if (a % 2 == 0) {
        b = b + 1;
    } else {
        b = b + 0;
    }
    if (a / 10 % 2 == 0) {
        c = c + 1;
    } else {
        c = c + 0;
    }
    cout << b + c;
    return 0;
}

а вот пример входных данных:

введите сюда описание изображения>

cpp questions's user avatar

задан 10 сен 2018 в 11:05

Володя Белочкин's user avatar

1

У вас как минимум не сработает для многозначного числа типа 1240152136… Увы, нет времени постепенно подталкивать вас к самостоятельному решению, так что посмотрите на этот код и постарайтесь понять, как он работает.

unsigned int evens(unsigned int n)
{
    int total = 0;
    for(;n;n/=10)
        if (n%2 == 0 && n%10) ++total;
    return total;
}

ответ дан 10 сен 2018 в 11:13

Harry's user avatar

HarryHarry

214k15 золотых знаков117 серебряных знаков229 бронзовых знаков

0

Понравилась статья? Поделить с друзьями:
  • Как найти быка по номеру
  • Как найти логарифм если неизвестно основание
  • Как найти мощность тепла
  • Как найти древние реликвии
  • Как найти стилиста для фотосессии