Функция f() - работает с внешними переменными a и b, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной b значение переменной а.
Функция g() - работает с внешними переменными a и d, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной a результат конкатенации значения переменной d и строки "0".
a b c d
'2' '3' '5' '7'
f() '2' '2' '5' '7'
g() '70' '3' '5' '7'
f() '70' '70' '5' '7'
Выведена будет конкатенация этих строк
"707057"
Если ответ удовлетворил, не забудь отметить его как "Лучший".
В задаче нам гарантируется, что на ввод подаются исключительно числа. При чем даже заданы ограничения с которыми они подаются, так что мы можем избавить себя от их валидации и сразу приступить к обработке.
Перво-наперво, нам необходимо получить количество чисел в последовательности. Для этого просто берем первую строку в стандартном вводе и рассматриваем её как число (1 строка кода).
Затем, нам надо получить все элементы последовательности. Но нам не обязательно работать с ними, как с числами, так как с нас не требуют математических операций. Так что просто оставляем их в виде строк (2 строка кода).
Далее, необходимо убрать все лишние значения (не оканчивающиеся на 3) и оставить только нужные. Для этого используем стандартную функцию filter, в которой проверяем последние символы строк на соответствие "3" (строка кода 3).
Осталось только посчитать количество оставшихся строк и вывести результат (строка кода 4).
Код:
N = int(input())
sequence = [input() for _ in range(N)] # Вводим числа
sequence = list(filter(lambda x: x[-1] == "3", sequence)) # Отсеиваем лишние
print(len(sequence)) # Сколько осталось?
Если ответ устроил, не забудь отметить его как "Лучший".
program CountNum;
uses
SysUtils;
var
n, i, c: Integer;
s: string;
begin
Write ('Введите N: ');
ReadLn (n);
s := IntToStr (n);
c := 0;
for i := 1 to Length (s) do begin
if StrToInt (s [i]) mod 2 = 0 then
Inc (c);
end;
WriteLn ('Количество четных цифр = ', c);
ReadLn;
end.