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