@mdeec

В чем здесь ошибка?

605f7c2d471be581546400.png
inp = input().split()
 
n = bin(int(inp[0]))
n = n[2:]
l = int(inp[1])
r = int(inp[2])
s = n[l:r+1]
if s == '':
    print('YES')
elif '1' in n[l:r+1]:
    print("NO")
else:
    print("YES")
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Ошибка в том, что разряды в задаче пронумерованы от младших к старшим.

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

Вам надо или строку развернуть, или номера разрядов пересчитать, учитывая длину строки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы