var
a, chet, nechet : integer;
begin
write('введите число: ');
readln(a);
while a > 0 do begin
if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
a := a div 10;
end;
writeln('четных: ', chet);
writeln('не четных: ', nechet);
end.
программа считает 0 как четное число. Если нужно что бы 0 не учитывался при подсчете то необходимо строку:
if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
заменить на:
if a mod 10 <> 0 then if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
Поделитесь своими знаниями, ответьте на вопрос:
C# C# Задание №1: Написать программу, которая ввести четырёхзначное число до тех пор, пока не введут правильно. Задание №2: Вывести все числа от 1000 до введённого, которые на которые делится 1.000.000
def f3():
from functools import reduce
numbers = list(map(int, input("Введите числа: ").split(' ')))
odd_positive = sum([x for x in numbers if x > 0 and x % 2 == 1])
return sum(odd_positive)/len(odd_positive)def f1():
numbers = list(map(int, input("Введите числа: ").split(' ')))
max_number = max(numbers)
max_index = numbers.index(max_number)
return max_number, max_index
def f2():
from functools import reduce
numbers = list(map(int, input("Введите числа: ").split(' ')))
sum_positive = sum([x for x in numbers if x > 0])
product_even_negative = reduce(lambda a, x: a*x, [n for n in numbers if n % 2 == 0 and n < 0])
return sum_positive , product_even_negative
def f3():
numbers = list(map(int, input("Введите числа: ").split(' ')))
new_numbers = [x for x in numbers if x > 0 and x % 2 == 1]
return sum(new_numbers)/len(new_numbers)