Статья Автор: Лебедев Дмитрий

Семестровая_май_2024_Задача 1

На вход автомата подаётся натуральное число N <=10000. Автомат строит по нему новое число R следующим образом.

1) Строится двоичная запись числа N.

2) К этой записи дописывается справа '11', если восьмеричная запись числа N заканчивается на нечетную цифру, иначе справа дописывается '10'.

3) К этой записи дописывается справа бит чётности: 0, если в полученном на предыдущем шаге двоичном коде  было чётное число единиц, и 1, если нечётное.

Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Функция возвращает строку - шестнадцатеричное представление числа R.

Напишите программу, которая ищет на заданном отрезке [A; B] количество чисел N, из которых получаются трехзначные шестнадцатеричные значения.

Преобразование числа автоматом должно быть оформлено в виде функции automatic(N). Необходимо написать программу!

Входные данные

Два натуральных числа A < B <=10000 в одной строке через пробел.

Выходные данные

Количество чисел на отрезке, после преобразования которых получаются трехзначные шестнадцатеричное значения.

Ввод

Результат

 

30 34

3

3010=111102=368  Последняя цифра 6 – четная - преобразуем на первом шаге к 1111010, количество 1 в этой записи 5 – нечетное, следовательно, еще добавляем 1: 111101012=F516  Функция automatic вернет 'f5'

3310=1000012=41Последняя цифра 1 – нечетная - преобразуем на первом шаге к 10000111, количество 1 в этой записи 4 – четное, следовательно, еще добавляем 0: 1000011102=10E16 Функция automatic вернет '10e'

В трехзначные шестнадцатеричные преобразуются 32, 33 и 34.

Задачу можно (и нужно) разбить на 2 этапа:
  1. Написать подпрограмму automatic(N) - получающую на вход десятичное число N и возвращающую 16-ричную запись числа R
  2. Основной блок программы
Написание подпрограммы потребует перевод в различные системы системы счисления (функции bin, hex,int)


Для решения задачи НЕ надо понимать, что:
  • дописать три двоичные цифры к числу справа - это умножение этого числа на 8 и прибавление небольшого остатка 
  • что трехзначным в 16-ричной системе будут числа от 256 (162) до 4096 (163
Желательно догадываться о том, что:
  • что в системах с чётным основанием есть признак делимости на 2, основанный на чётности последней цифры
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать