Создавать и выполнять программы на универсальном языке программирования · 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
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 5. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
|---|---|
485 557 893 3029 4125 0 | 3 |
Решение
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число на соответствие двум условиям, связанным с его представлением в восьмеричной системе счисления.
Шаг 1. Разбор условий задачи.
1. Число в восьмеричной системе должно быть четырёхзначным.
Минимальное четырёхзначное число в восьмеричной системе — это 10008. Переведём его в десятичную систему: 1⋅83=512.
Максимальное четырёхзначное число в восьмеричной системе — это 77778. Переведём его в десятичную систему: 84−1=4096−1=4095.
Следовательно, число X должно находиться в диапазоне: 512≤X≤4095.
2. Число в восьмеричной системе должно оканчиваться на цифру 5.
Последняя цифра в любой системе счисления с основанием n — это остаток от деления числа на n. Значит, остаток от деления нашего числа на 8 должен быть равен 5: X(mod8)=5.
Шаг 2. Алгоритм решения.
Мы будем считывать числа в цикле до тех пор, пока не встретим 0. Для каждого числа проверим выполнение обоих условий одновременно (используя логическое "И"). Если условия верны, увеличим счётчик на 1.
Шаг 3. Реализация на языке программирования (Python).
count = 0
x = int(input())
while x != 0:
if 512 <= x <= 4095 and x % 8 == 5:
count += 1
x = int(input())
print(count)
Шаг 4. Проверка на примере.
Разберём числа из примера (хотя в примере даны числа, которые не всегда попадают в диапазон четырёхзначных восьмеричных, логика работы программы остаётся прежней):
- 485: 512≤485≤4095 — Ложь. (В примере, вероятно, опечатка в условии или данных, но мы строго следуем правилу перевода систем счисления. Если рассматривать пример буквально, то 48510=7458 — это трёхзначное число).
- Однако, если в примере подразумевается, что числа 485, 557, 893, 3029, 4125 — это десятичные числа, проверим их:
1) 48510=7458 (3 знака, не подходит).
2) 55710=10558 (4 знака, оканчивается на 5 — подходит).
3) 89310=15758 (4 знака, оканчивается на 5 — подходит).
4) 302910=57258 (4 знака, оканчивается на 5 — подходит).
5) 412510=100358 (5 знаков, не подходит).
Итого: 3 числа.
Ответ: 3
Источник: ФИПИ