Задание 5
Анализ и построение алгоритмов для исполнителей
Что стоит знать перед выполнением:

Задача 1
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, которое превышает 43 и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе.

Решение:
Для удобства объединим два условия. Например, в записи 11100 нечетное кол-во единиц, и после преобразования мы получим 111001, затем, повторив эти же действия, получаем уже 1110010 (т.к. кол-во единиц уже четное). Значит, если в двоичной записи нечетное кол-во единиц, то справа дописывается "10", а если четное, то дописывается "00".
Итак, мы будем подбирать числа N с помощью цикла for, затем, построив двоичную запись, используем данное правило и в конце сравним с числом 43. Если результат подходит, то выведем его на экран и завершим программу, выйдя из цикла с помощью ключевого слова break (так как нас просят найти наименьшее число. Первое найденное число и будет наименьшим.)
Так выглядел бы код, если бы мы не объединяли условия:
Стоит отметить, что функция bin() возвращает нам строку, поэтому мы можем использовать конкатенацию.
Ответ: 46
Задача 2
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью результирующего числа R.
Укажите такое наименьшее число N, для которого результат работы алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.

Решение:
Здесь мы также можем объединить условия А и Б. От предыдущей задачи эта отличается только тем, что в ответе нужно указать не число R, а число N.
Ответ: 19
Задача 3
Автомат обрабатывает натуральное число N > 1 по следующему алгоритму.
1. Строится двоичная запись числа N.
2. Последняя цифра двоичной записи удаляется.
3. Если исходное число N было нечётным, в конец записи (справа) дописываются цифры 10, если чётным — 01.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1101.
2. Удаляется последняя цифра, новая запись: 110.
3. Исходное число нечётно, дописываются цифры 10, новая запись: 11010.
4. На экран выводится число 26.
Какое число нужно ввести в автомат, чтобы в результате получилось 2018?

Решение:
Код будет выглядеть таким образом:
Ответ: 1009
Задача 4
Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N.
2. Удаляется первая слева единица и все следующие непосредственно за ней нули. Если после этого в числе не остаётся цифр, результат этого действия считается равным нулю.
3. Полученное число переводится в десятичную запись.
4. Новое число вычитается из исходного, полученная разность выводится на экран.
Пример. Дано число N = 11. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1011.
2. Удаляется первая единица и следующий за ней ноль: 11.
3. Десятичное значение полученного числа 3.
4. На экран выводится число 11 – 3 = 8.

Сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от 100 до 3000?

Решение:
Стоит понимать, что после удаления первой "1" все последующие за ней нули удалятся сами.
Благодаря set( ) нам не приходится делать проверку на повторение значений, т.к. она представляет собой коллекцию уникальных элементов.
Ответ: 6
Задача 5
Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N.
2. Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
3. Полученное число переводится в десятичную запись и выводится на экран.
Пример. Дано число N = 58. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 111010.
2. Запись справа налево: 10111 (ведущий ноль отброшен).
3. На экран выводится десятичное значение полученного числа 23.

Какое наибольшее число, не превышающее 100, после обработки автоматом даёт результат 13?
Решение:
Ответ: 88
предыдущее задание
Задание 2
Следующее задание
задание 6
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website