Шешімі: Последняя цифра в системе счисления
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, последовательность заканчивается числом 0, которое в последовательность не входит.
Программа должна вывести количество чисел, запись которых в 7-ричной системе счисления оканчивается цифрой 1, или «NO», если таких чисел нет.
Шешімін қадамдап көрсету
5 қадамПоследняя цифра числа в системе счисления с основанием 7 определяется остатком от деления числа на 7. Поэтому запись оканчивается цифрой 1 тогда и только тогда, когда остаток равен 1.
$$n \mathbin{\%} 7 = 1$$Организуем ввод в цикле. Число 0 является признаком окончания ввода и не обрабатывается.
Для каждого числа, удовлетворяющего условию, увеличиваем счётчик на единицу.
После окончания ввода выводим количество найденных чисел. Если счётчик равен нулю, выводим строку «NO».
Один из возможных нұсқа программы:
$$count = 0\nwhile True:\n n = int(input())\n if n == 0:\n break\n if n % 7 == 1:\n count += 1\n\nif count == 0:\n print('NO')\nelse:\n print(count)$$Программа должна считать числа до нулевого признака окончания, проверять условие $n \mathbin{\%} 7 = 1$ и выводить количество подходящих чисел либо «NO».
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Обработка числа 0 как элемента последовательности.
Проверка делимости на 7 вместо проверки остатка 1.
Полный перевод числа в 7-ричную систему без необходимости.
Вывод числа 0 вместо строки «NO», если подходящих элементов нет.
Использование условия n % 7 == 0 вместо n % 7 == 1.