for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
if n % 2 == 0:
s += "00"
else:
s += "11"
r = int(s, 2) # перевод в десятичную систему
if r > 100:
print(n)
break
Ответ: 25 for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
if n % 2 == 0:
s += "00"
else:
s += "11"
r = int(s, 2) # перевод в десятичную систему
if r > 100:
print(n)
break
Вот тебе алгоритм решения данной задачи на будущее. Ответ будет: 25 max_r = 0
for n in range(1, 100):
# Получаем двоичное представление числа n
binary_n = bin(n)[2:]
# Определяем, какие два разряда добавить
if n % 4 == 0:
binary_r = binary_n + "00"
elif n % 4 == 1:
binary_r = binary_n + "01"
elif n % 4 == 2:
binary_r = binary_n + "10"
else: # n % 4 == 3
binary_r = binary_n + "11"
# Переводим полученную двоичную запись обратно в десятичную систему
r = int(binary_r, 2)
# Проверяем, меньше ли r чем 100 и обновляем максимальное значение
if r < 100 and r > max_r:
max_r = r
print(max_r)
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
- если N делится нацело на 4, в конец числа (справа) дописывается сначала ноль, затем ещё один ноль;
- если N при делении на 4 даёт в остатке 1, то в конец числа (справа) дописывается сначала ноль, затем единица;
- если N при делении на 4 дает в остатке 2, то в конец числа (справа) дописывается сначала один, а затем ноль;
- если N при делении на 4 даёт в остатке 3, в конец числа (справа) дописывается сначала один, а затем ещё одна единица.
Например, двоичная запись 1001 числа 9 будет преобразована в 100101, а двоичная запись 1100 числа 12 будет преобразована в 110000.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа R - результата работы данного алгоритма.
Укажите максимальное число R, которое меньше 100 и может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.