Найти в Дзене

ВСЕ ПРОТОТИПЫ ЗАДАНИЯ 5 ЕГЭ ПО ИНФОРМАТИКЕ

Складываются все цифры двоичной записи числа

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

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

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

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

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

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

Укажите минимальное число R, которое превышает число 396 и может являться результатом работы данного алгоритма.

В ответе это число запишите в десятичной системе счисления.

for n in range(1,1000):
n2 = bin(n)[2:]
n2 += str(n2.count('1') % 2)
n2 += str(n2.count('1') % 2)
R = int(n2,2)
if R > 396:
print(R)
break

Если N чётное / не четное

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

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

2. К этой записи дописываются справа и слева ещё по одному или два разряда по следующему правилу: если N чётное, то в конец числа (справа) дописывается нуль, а в начало числа (слева) дописывается единица; если N нечётное, то в конец числа (справа) и в начало числа (слева) дописываются по две единицы.

Пример. Для числа 13 двоичная запись 1101 преобразуется в запись 11110111.

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

Укажите наименьшее число R, превышающее 52, которое может являться результатом работы данного алгоритма.

В ответе это число запишите в десятичной системе счисления.

a = []
for n in range(1,1000):
    n2 = bin(n)[2:]
    if n % 2 == 0:
        n2 = '1' + n2 + '0'
    else:
        n2 = '11' + n2 + '11'
    R = int(n2,2)
    if R > 52:
        a.append(R)
print(min(a))

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

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

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

а) если N чётное, то к нему справа приписываются два нуля, а слева единица;

б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;

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

Например, исходное число 410 = 1002 преобразуется в число 1100002 = 4810, а исходное число 1310 = 11012 преобразуется в число 1101112 = 5510.

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

for n in range(1,1000):
    n2 = bin(n)[2:]
    if n % 2 == 0:
        n2 = '1' + n2 + '00'
    else:
        n2 = n2 + str(n2.count('1'))[2:]
    R = int(n2,2)
    if R > 190:
        print(n)
        break

Двоичная запись числа N / делится / не делится на 3

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

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

2. Далее эта запись обрабатывается по следующему правилу:

а) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;

б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.

Полученная таким образом запись является двоичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 это число 100112 = 19.

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

d = []
for n in range (1,1000):
    n2=bin(n)[2:]
    if n % 3 == 0:
        n2+=n2[-3:]
    else:
        bin((n % 3) * 3)[2:]
    R = int(n2, 2)
    if R < 162:
        d.append(R)
print(max(d))

Троичная запись числа N / делится / не делится на 3

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

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

2. Далее эта запись обрабатывается по следующему правилу:

а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры;

б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа.

Полученная таким образом запись является троичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 6 = 203 это число 20203 = 60.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 86.

def tri(x):
    s=""
    while x>0:
        s += str(x % 3)
        x = x // 3
    return s[::-1]
for n in range(1,1000):
    n3 = tri(n)
    if n % 3 == 0:
        n3 += n3[-2:]
    else:
        n3 += tri((n % 3) * 5)
    R = int(n3, 3)
    if R >= 86:
        print(n)
        break

Наука
7 млн интересуются