Я пытаюсь решить проблему конкурентного кодирования.Мне удалось пройти все тестовые случаи, кроме одного.Я предполагаю, что я пропустил какой-то случай с краем.
Проблема:
Учитывая входное десятичное число, преобразовать его в двоичное и изменить битыв указанных позициях (указанных во входных данных) в двоичной форме числа до 0. Выведите полученное двоичное число в десятичной форме.
Вот мой код:
import math
for _ in range(int(input())):
n = int(input()) #The given number
a = list(map(int, input().split())) #Positions at which the bits need to be masked
b = str(bin(n))[:1:-1]
for i in a:
if i<=len(b) and b[i-1]=='1':
n-=math.pow(2, i-1)
print(int(n))
Есликто-нибудь может рассказать о возможных крайних случаях, которые я мог пропустить, это было бы здорово.Я не смог найти какой-либо дискуссии по этой проблеме, и она не позволяет мне увидеть решение других.Любая помощь приветствуется.Спасибо.