Решение: Подсчёт чисел по цифре в системе счисления
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO». В первой строке вводится натуральное число $N$ ($3 \leq N \leq 10\,000$), затем вводятся $N$ натуральных чисел, не превышающих $30\,000$, каждое в отдельной строке. Программа должна вывести количество таких чисел или «NO», если подходящих элементов нет.
Решение по шагам
4 шагаСчитываем количество чисел $N$ и вводим последовательность.
Последняя цифра записи натурального числа в системе счисления с основанием 7 определяется остатком от деления этого числа на 7. Поэтому проверяем условие $x \bmod 7 = 1$.
$$x \bmod 7 = 1$$Для каждого подходящего числа увеличиваем счётчик. Если после обработки всех чисел счётчик равен нулю, выводим «NO», иначе выводим его значение.
Один из вариантов программы на Python:
$$n = int(input()) count = 0 for _ in range(n): x = int(input()) if x % 7 == 1: count += 1 if count == 0: print('NO') else: print(count)$$n = int(input())
count = 0
for _ in range(n):
x = int(input())
if x % 7 == 1:
count += 1
if count == 0:
print('NO')
else:
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Пытаться сравнивать число с его полной записью в семеричной системе вместо проверки остатка от деления на 7.
Проверять остаток 0 или 7 вместо остатка 1.
Выводить 0, когда подходящих чисел нет, хотя по условию требуется вывести «NO».
Обработать не все $N$ чисел или ошибочно включить первое число $N$ в последовательность.