#25 Résolvez le problème recommandé. ABC105-C
** Pensées ** Tout d'abord, réfléchissons à la méthode pour créer un nombre binaire normal. Convertissez un nombre décimal en nombre binaire avec this. Faites-en une version de base -2. Le changement est que le reste est un nombre naturel, vous devez donc bien ajuster le reste. Lorsqu'il est divisible par -2, il ne reste plus grand-chose, donc n // 2 tel quel. S'il y a un reste, vous pouvez bien le calculer en le divisant par n-1 puis -2. Si vous ajoutez avec cette méthode de calcul, l'ordre des réponses sera inversé, donc il sera inversé. Après cela, rejoignez simplement str.
n = int(input())
if n == 0:
print(0)
quit()
base = []
while n != 1:
if n % -2 == 0:
base.append('0')
n //= -2
else:
base.append('1')
n -= 1
n //= -2
base.append('1') #N'oubliez pas d'en faire un à la fin
base.reverse()
ans = ''.join(base)
print(ans)
agréable. à plus
Recommended Posts