#25 Lösen Sie das empfohlene Problem. ABC105-C
** Gedanken ** Betrachten wir zunächst eine Methode zur Konvertierung in eine normale Binärzahl. Konvertieren Sie mit [this] eine Dezimalzahl in eine Binärzahl (https://sci-pursuit.com/math/binary-number-conversion.html). Machen Sie dies zu einer -2 Basisversion. Die Änderung besteht darin, dass der Rest eine natürliche Zahl ist, sodass Sie den Rest gut anpassen müssen. Wenn es durch -2 teilbar ist, ist nicht mehr viel übrig, also n // 2 wie es ist. Wenn es einen Rest gibt, können Sie ihn gut berechnen, indem Sie ihn durch n-1 und dann -2 teilen. Wenn Sie diese Berechnungsmethode anhängen, wird die Reihenfolge der Antworten umgekehrt, sodass sie umgekehrt wird. Danach schließen Sie sich einfach str an.
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') #Vergiss nicht, am Ende einen zu machen
base.reverse()
ans = ''.join(base)
print(ans)
angenehm. wir sehen uns
Recommended Posts