Решение: Подсчёт чётных цифр в пятеричной записи
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с основанием 5 оканчивается чётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число — количество десятичных чисел, запись которых в системе счисления с основанием 5 оканчивается чётной цифрой, или «NO», если среди входных данных таких элементов нет.
| Входные данные | Выходные данные |
|---|---|
| 12 15 10 71 50 11 0 | 4 |
Решение по шагам
5 шаговПоследняя цифра записи натурального числа в системе счисления с основанием 5 определяется остатком от деления числа на 5.
$$d = n \bmod 5$$Чётными цифрами в системе счисления с основанием 5 являются $0$, $2$ и $4$, поэтому подходящее число удовлетворяет условию:
$$n \bmod 5 = 0 \;\text{или}\; n \bmod 5 = 2 \;\text{или}\; n \bmod 5 = 4$$Считываем числа до появления нуля. Для каждого подходящего числа увеличиваем счётчик.
$$count = count + 1$$Если счётчик равен нулю, выводим «NO», иначе выводим его значение.
Один из вариантов программы на Python:
$$n = int(input()) count = 0 while n != 0: if n % 5 in (0, 2, 4): count += 1 n = int(input()) if count == 0: print("NO") else: print(count)$$Считывать числа до 0; считать те, для которых $n \bmod 5 \in \{0,2,4\}$; при нулевом счётчике вывести «NO».
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют чётность самого десятичного числа вместо последней цифры его записи в системе счисления с основанием 5.
Включают число 0 в последовательность.
Проверяют только остатки 0 и 2, забывая о чётной цифре 4.
Выводят 0 вместо «NO», если подходящих чисел нет.