分からないので解説確認。
なるほど。以下で通った。
abc216c.py
N = int(input())
ans = ""
while True:
if N == 0:
break
elif N%2 == 0:
ans += "B"
N //= 2
elif N%2 != 0:
ans += "A"
N -=1
print(ans[::-1])#23ms
2^120 は 10^36 らしいので、
N%2 を最優先に記述すれば
基本的には 120回以下に収まると判断していいはず
参加者の解答を眺めていたが、
while 分の条件を設定できれば
if / elif / else の記述が少し減らせるのは面白いと思った。
abc216c.py
def solv():
N = int(input())
ans = ""
while N>1:
if N%2 == 0:
ans += "B"
N //= 2
else:
ans += "A"
N -= 1
ans += "A"
print(ans[::-1])
solv()#30ms