Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 5. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Решение по шагам
4 шагаВ шестнадцатеричной системе первая цифра трёхзначного числа должна быть ненулевой. Поэтому число должно находиться в диапазоне от $16^2 = 256$ до $16^3 - 1 = 4095$.
$$256 \leq n \leq 4095$$Последняя цифра шестнадцатеричной записи определяется остатком от деления числа на 16. Для цифры 5 этот остаток должен быть равен 5.
$$n \bmod 16 = 5$$Считываем числа до появления нуля. Если оба условия выполняются, увеличиваем значение счётчика.
$$count = count + 1$$После завершения ввода выводим значение счётчика. Например, программа на Python может выглядеть так:
n = int(input())
count = 0
while n != 0:
if 256 <= n <= 4095 and n % 16 == 5:
count += 1
n = int(input())
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают число 0 в обрабатываемую последовательность.
Проверяют диапазон от 256 до 4096 включительно, хотя 4096 уже имеет четыре цифры в шестнадцатеричной системе.
Проверяют остаток от деления на 10 вместо остатка от деления на 16.
Забывают считать число, введённое перед переходом к следующему элементу.