Решение: Последняя цифра в системе счисления
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с основанием 5 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число — количество десятичных чисел, запись которых в системе счисления с основанием 5 оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Решение по шагам
4 шагаПоследняя цифра записи натурального числа в системе счисления с основанием 5 определяется остатком от деления этого числа на 5.
$$d = n \bmod 5$$Возможные остатки при делении на 5 равны 0, 1, 2, 3 и 4. Нечётными являются остатки 1 и 3.
Считываем числа в цикле до появления числа 0. Ноль не обрабатываем, так как он является признаком окончания ввода.
Если остаток равен 1 или 3, увеличиваем счётчик. После завершения ввода выводим найденное количество, а при нулевом количестве — «NO».
```python
count = 0
while True:
n = int(input())
if n == 0:
break
if n % 5 == 1 or n % 5 == 3:
count += 1
if count == 0:
print('NO')
else:
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют нечётность самого десятичного числа вместо последней цифры его записи в системе счисления с основанием 5.
Забывают, что последняя цифра определяется остатком от деления на 5.
Учитывают число 0 как элемент последовательности.
Проверяют только остаток 1 и не учитывают остаток 3.