Создать сайт на a5.ru
Более 400 шаблонов
Простой редактор
Приступить к созданию

Подготовка к государственной итоговой аттестации по информатике

Задание 5. (ДЕМО-2023)

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

1. Строится двоичная запись числа N. 
2. Далее эта запись обрабатывается по следующему правилу: 
    а)  если  сумма  цифр  в  двоичной  записи  числа  чётная,  то  к  этой  записи справа дописывается 0, а затем два левых разряда   заменяются на 10; 
    б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11. 
Полученная  таким  образом  запись  является  двоичной  записью  искомого числа R. 
Например,  для  исходного  числа  6 (10)   =  110 (2)   результатом  является  число  1000 (2)   =  8 (10) ,  а  для  исходного  числа  4 (10)   =  100 (2)   результатом  является  число 1101 (2)  = 13 (10) . 
Укажите  минимальное  число  N,  после  обработки  которого  с  помощью этого  алгоритма  получается  число  R,  большее  40.  В  ответе  запишите  это число в десятичной системе счисления.

Решение

Запишем программу на Pascal

uses school;

begin  

for var  n:=4 to 40 do 

      begin    

         var b:=bin(n);    

         if b.CountOf('1') mod 2 =0 then    b:='10'+b[3:]+’0’    else b:='11'+b[3:]+'1';   

         if dec(b,2)>40 then (println(n));  

      end;

end.

Ответ: 16

 

Пример 1. 

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

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

2.  К этой записи дописываются справа ещё два разряда по следующему правилу:

   а)  складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

   б)  над этой записью производятся те же действия  — справа дописывается остаток от деления суммы цифр на 2.

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

Укажите такое наименьшее число N, для которого результат работы алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления. 

uses school;

var s:integer;

begin  

for var n:=2 to 100 do     

     begin       

        var b:=bin(n); 

        s:= b.CountOf('1') mod 2;

       b:=b+inttostr(s); 

        s:= b.CountOf('1') mod 2; 

       b:=b+inttostr(s);

       if dec(b,2)>77 then println(n);

      end;

end.

 

Ответ: 19

 

Пример 2.

Автомат обрабатывает натуральное число N (0 ≤ N ≤ 255) по следующему алгоритму:

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

2.  Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0).

3.  Полученное число переводится в десятичную запись.4.  Из нового числа вычитается исходное, полученная разность выводится на экран.

Пример. Дано число N = 13. Алгоритм работает следующим образом.

1.  Восьмибитная двоичная запись числа N: 00001101.

2.  Все цифры заменяются на противоположные, новая запись 11110010.

3.  Десятичное значение полученного числа 242.

4.  На экран выводится число 242 − 13 = 229. Какое число нужно ввести в автомат, чтобы в результате получилось 133?

 

uses school;

var x:integer;

begin  

for var n:=0 to 255 do

    begin

       var b:=bin(n); 

      if length(b)<8 then b:='0'*(8-length(b))+b;

      b:=b.replace('1', '*');

      b:= b.replace('0', '1');

      b := b.replace('*', '0');

      if dec(b,2)-n=133 then println(n);

     end;

end.

 

Ответ: 61

 

 

 

 

Авторизуйтесь, чтобы оставить свой комментарий:

Комментариев:
© Бондарь М.Н., 2023 г.
rezervbmn@mail.ru
Все права защищены.