Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 6. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число — количество искомых элементов последовательности.
| Входные данные | Выходные данные |
|---|---|
| 166 278 886 950 4118 0 | 3 |
Решение по шагам
5 шаговТрёхзначная запись числа в шестнадцатеричной системе означает, что число находится в диапазоне от $16^2$ до $16^3 - 1$.
$$256 \leq n < 4096$$Последняя цифра шестнадцатеричной записи равна 6, если остаток от деления числа на 16 равен 6.
$$n \bmod 16 = 6$$Считываем числа до появления 0. Если число удовлетворяет обоим условиям, увеличиваем счётчик.
После завершения ввода выводим значение счётчика.
Один из возможных вариантов программы на Python:
$$count = 0 while True: n = int(input()) if n == 0: break if 16**2 <= n < 16**3 and n % 16 == 6: count += 1 print(count)$$Программа должна считывать числа до 0, проверять условия 256 ≤ n < 4096 и n mod 16 = 6, а затем выводить количество подходящих чисел.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют диапазон десятичных чисел как от 100 до 999, хотя требуется трёхзначная запись в шестнадцатеричной системе.
Используют деление на 10 вместо деления на 16 для проверки последней шестнадцатеричной цифры.
Включают число 0 в обрабатываемую последовательность.
Забывают вывести только итоговое количество.