16. Программирование: #294645
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру $7$. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает $1000$. Последовательность чисел заканчивается числом $0$ ($0$ – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
| Входные данные | Выходные данные |
|---|---|
| 167 279 887 951 4119 0 | 3 |
Трёхзначное число в шестнадцатеричной системе счисления находится в диапазоне от $100_{16}$ до $FFF_{16}$. В десятичной системе это числа от $256$ до $4095$:
$100_{16}=256$
$FFF_{16}=4095$.
Если запись числа в шестнадцатеричной системе счисления оканчивается цифрой $7$, то при делении этого числа на $16$ остаток должен быть равен $7$.
Значит, для каждого введённого числа достаточно проверить два условия: $256 \leq x \leq 4095$ и $x \%\ 16 == 7$. Будем увеличивать счётчик на $1$, если оба условия выполняются. Ввод чисел продолжается до тех пор, пока не встретится число $0$.
count = 0
x = int(input())
while x != 0:
if 256 <= x <= 4095 and x % 16 == 7:
count += 1
x = int(input())
print(count)
Для приведённого примера условию соответствуют числа $279$, $887$ и $951$:
$279=117_{16}$
$887=377_{16}$
$951=3B7_{16}$.
Число $167=A7_{16}$ является двузначным, а $4119=1017_{16}$ — четырёхзначным, поэтому они не подходят.
Таким образом, программа выведет: $3$.