Создавать и выполнять программы на универсальном языке программирования · 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
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления трёхзначна и оканчивается на цифру 6. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
|---|---|
38 166 478 510 582 0 | 3 |
Решение
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число на соответствие двум условиям: трёхзначность в восьмеричной системе счисления и окончание на цифру 6 в той же системе.
Шаг 1. Разбор условий в восьмеричной системе.
1. Число является трёхзначным в восьмеричной системе счисления, если оно находится в диапазоне от 1008 до 7778. Переведём эти границы в десятичную систему:
Нижняя граница: 1⋅82+0⋅81+0⋅80=64.
Верхняя граница: 7⋅82+7⋅81+7⋅80=448+56+7=511.
Следовательно, число x трёхзначно в восьмеричной системе, если 64≤x≤511.
2. Последняя цифра числа в любой системе счисления — это остаток от деления этого числа на основание системы. Значит, число оканчивается на 6 в восьмеричной системе, если остаток от его деления на 8 равен 6 (т.е. x(mod8)=6).
Шаг 2. Алгоритм решения.
Мы будем считывать числа по одному до тех пор, пока не встретим 0. Для каждого числа проверим выполнение обоих условий одновременно. Если условия верны, увеличим счётчик на 1.
Шаг 3. Проверка примера.
Рассмотрим числа из примера:
- 38: 38<64 (не трёхзначное в 8-ой системе). Пропускаем.
- 166: 64≤166≤511 (да) и 166(mod8)=6 (так как 166=20⋅8+6). Подходит. (Счётчик = 1)
- 478: 64≤478≤511 (да) и 478(mod8)=6 (так как 478=59⋅8+6). Подходит. (Счётчик = 2)
- 510: 64≤510≤511 (да) и 510(mod8)=6 (так как 510=63⋅8+6). Подходит. (Счётчик = 3)
- 582: 582>511 (не трёхзначное в 8-ой системе). Пропускаем.
Итого: 3.
Программа на языке Python:
count = 0
x = int(input())
while x != 0:
if 64 <= x <= 511 and x % 8 == 6:
count += 1
x = int(input())
print(count)
Ответ: 3
Источник: ФИПИ