Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Помогите написать код на питоне по информатике

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

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

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

дописывается 0, а затем три левых разряда заменяются на 101; 6) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 11, а затем два левых разряда заменяются на 10.

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

Например, для исходного числа 610 = 1102 результатом является число 10102 = 1010, а для исходного числа 410 = 1002 результатом является число 100112 = 1910- Укажите минимальное число №, после обработки которого с помощью этого алгоритма получается число R, большее 68. В ответе запишите это число в десятичной системе счисления.

По дате
По рейтингу
Аватар пользователя
Профи
8мес

def get_binary_result(N):
# Переводим число N в двоичную систему
binary_N = bin(N)[2:]

# Проверяем сумму цифр
sum_digits = sum(int(digit) for digit in binary_N)

# Обрабатываем запись по правилам алгоритма
if sum_digits % 2 == 0:
# Чётная сумма: дописываем 0 и заменяем три левых разряда на 101
modified_binary = '101' + binary_N[3:] + '0'
else:
# Нечётная сумма: дописываем 11 и заменяем два левых разряда на 10
modified_binary = '10' + binary_N[2:] + '11'

# Преобразуем полученную двоичную запись в десятичное число
R = int(modified_binary, 2)
return R

# Ищем минимальное N, при котором R > 68
N = 1
while True:
R = get_binary_result(N)
if R > 68:
break
N += 1

print(N)

Аватар пользователя
Мастер
8мес

у меня в штанах питон самый настоящий