Предмет: Информатика,
автор: Danilchik06
Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1) Строится двоичная запись числа N.
2) В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
3) Запись записывается справа налево (в обратную сторону).
4) Результат переводится в десятичную систему счисления.
Для скольких значений N в результате работы алгоритма получится число 127?
Задача с сайта Полякова. Мне нужен способ как то быстро решать эту задачу. Пробовал написать программу на питоне, но отнимает слишком много времени, в условиях экзамена я такого позволить себе не могу. По идее эту задачу можно решать без программ, но как? На ум не приходит никаких идей .Мне нужен наиболее эффективный способ решения задачи, буду очень благодарен!!
Ответы
Автор ответа:
1
Ответ:
у меня получилось 61
Объяснение:
N = 2
counter = 1
for i in range(1, 10000000):
binary = str(bin(N)[2:])
print(binary)
first_numbers = binary[:2]
temp_list = list(binary)
if temp_list[-1] == '0':
temp_list[-1] = first_numbers
print(temp_list)
temp_list.reverse()
print(temp_list)
result_join = ''.join(temp_list)
print(result_join)
result_int = int(result_join, 2)
if result_int == 127:
print(result_int)
print('counter', counter)
break
N += 1
counter += 1
Если подумать, то можно этот код сократить. А так пишется недолго и легко (если решение правильное:) )
for x in range(1,100):
n = bin(x)[2:]
index = n.rfind('0')
n = n[:index]+n[:2]+n[index+1:]
n = n[::-1]
n = int(n,2)
if n == 123: print(x) #Ответ 4
n = bin(x)[2:]
index = n.rfind('0')
n = n[:index]+n[:2]+n[index+1:]
n = n[::-1]
n = int(n,2)
if n == 123: print(x) #Ответ 4
Похожие вопросы
Предмет: Қазақ тiлi,
автор: жансезим
Предмет: Русский язык,
автор: 27051212
Предмет: Русский язык,
автор: Эля22эля
Предмет: Алгебра,
автор: Анелетта
Предмет: Русский язык,
автор: naumchik107
n = bin(x)[2:]
index = n.rfind('0')
n = n[:index]+n[:2]+n[index+1:]
n = n[::-1]
n = int(n,2)
if n == 127: print(x) #Ответ 4