Создавать и выполнять программы на универсальном языке программирования · 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
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру F. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
|---|---|
175 287 895 959 4127 0 | 3 |
Решение
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число и проверить, удовлетворяет ли оно двум условиям одновременно:
1. Шестнадцатеричная запись числа является трёхзначной.
2. Шестнадцатеричная запись числа оканчивается на цифру F.
Разберём эти условия с точки зрения математики:
Шаг 1. Условие трёхзначности в 16-ричной системе.
Минимальное трёхзначное число в шестнадцатеричной системе — это 10016. Переведём его в десятичную систему:
1⋅162+0⋅161+0⋅160=256.
Максимальное трёхзначное число — это FFF16. Переведём его:
15⋅162+15⋅161+15⋅160=4095.
Следовательно, число x трёхзначно в 16-ричной системе, если 256≤x≤4095.
Шаг 2. Условие окончания на цифру F.
Последняя цифра числа в любой системе счисления с основанием n — это остаток от деления этого числа на n.
Цифра F в шестнадцатеричной системе соответствует десятичному числу 15.
Значит, число оканчивается на F, если остаток от его деления на 16 равен 15. В программировании это записывается как x(mod16)=15.
Шаг 3. Алгоритм решения.
1. Создаём переменную-счётчик count и обнуляем её.
2. Организуем цикл чтения чисел до тех пор, пока не встретим 0.
3. Для каждого числа проверяем: (x≥256) И (x≤4095) И (x(mod16)=15).
4. Если условия верны, увеличиваем count на 1.
5. После окончания ввода выводим значение count.
Пример реализации на языке Python:
count = 0
x = int(input())
while x != 0:
if 256 <= x <= 4095 and x % 16 == 15:
count += 1
x = int(input())
print(count)
Проверим на примере из условия:
1. 175: 175<256 (не подходит).
2. 287: 256≤287≤4095. Проверим остаток: 287/16=17 (остаток 15). Подходит! (count=1).
3. 895: 256≤895≤4095. Проверим остаток: 895/16=55 (остаток 15). Подходит! (count=2).
4. 959: 256≤959≤4095. Проверим остаток: 959/16=59 (остаток 15). Подходит! (count=3).
5. 4127: 4127>4095 (не подходит, это уже четырёхзначное число 101F16).
Итого: 3.
Ответ: 3
Источник: ФИПИ