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