Создавать и выполнять программы на универсальном языке программирования · 170 заданий
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру A. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
|---|---|
170 282 890 954 4122 0 | 3 |
Решение
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число и проверить, удовлетворяет ли оно двум условиям одновременно: его шестнадцатеричная запись должна быть трёхзначной и оканчиваться на цифру A.
Шаг 1. Разбор условий в десятичной системе.
1. Чтобы число в шестнадцатеричной системе счисления было трёхзначным, оно должно находиться в диапазоне от 10016 до FFF16.
Переведём эти границы в десятичную систему:
Минимальное трёхзначное: 10016=1⋅162+0⋅161+0⋅160=25610.
Максимальное трёхзначное: FFF16=15⋅162+15⋅161+15⋅160=409510.
Следовательно, число x должно удовлетворять условию: 256≤x≤4095.
2. Последняя цифра в шестнадцатеричной системе — это остаток от деления числа на 16. Цифра A в шестнадцатеричной системе соответствует десятичному числу 10.
Значит, условие "оканчивается на A" на языке программирования запишется как: x(mod16)=10.
Шаг 2. Алгоритм решения.
Мы будем считывать числа в цикле до тех пор, пока не встретим 0. Для каждого числа проверим выполнение обоих условий. Если условия верны, увеличим счётчик на 1.
Шаг 3. Реализация на языке Python.
count = 0
x = int(input())
while x != 0:
if 256 <= x <= 4095 and x % 16 == 10:
count += 1
x = int(input())
print(count)
Шаг 4. Проверка на примере.
Разберём числа из примера:
1) 170: 170<256 (не трёхзначное в 16-ричной системе).
2) 282: 256≤282≤4095 — верно. 282(mod16)=10 (так как 282=17⋅16+10) — верно. Подходит (11A16).
3) 890: 256≤890≤4095 — верно. 890(mod16)=10 (так как 890=55⋅16+10) — верно. Подходит (37A16).
4) 954: 256≤954≤4095 — верно. 954(mod16)=10 (так как 954=59⋅16+10) — верно. Подходит (3BA16).
5) 4122: 4122>4095 (четырёхзначное в 16-ричной системе).
Итого: 3 числа.
Ответ: 3
Источник: ФИПИ