Шешімі: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 3. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Программа должна напечатать только одно число — количество искомых элементов последовательности.
Шешімін қадамдап көрсету
4 қадамТрёхзначные числа в шестнадцатеричной системе находятся от $16^2 = 256$ до $16^3 - 1 = 4095$.
$$256 \leq n < 4096$$Последняя цифра шестнадцатеричной записи определяется остатком от деления числа на 16. Для цифры 3 должно выполняться условие $n \bmod 16 = 3$.
$$n \bmod 16 = 3$$Считываем числа до появления нуля. Для каждого подходящего числа увеличиваем счётчик, затем выводим его.
Один из корректных нұсқа программы:
$$count = 0 n = int(input()) while n != 0: if 256 <= n < 4096 and n % 16 == 3: count += 1 n = int(input()) print(count)$$```python
count = 0
n = int(input())
while n != 0:
if 256 <= n < 4096 and n % 16 == 3:
count += 1
n = int(input())
print(count)
```
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают число 0 в обрабатываемую последовательность.
Проверяют остаток от деления на 10 вместо остатка от деления на 16.
Используют верхнюю границу 4096 включительно, хотя число 4096 уже имеет четырёхзначную шестнадцатеричную запись.
Проверяют строковое представление числа в десятичной системе, а не его свойства в шестнадцатеричной системе.