考え方
$K$を2進数表記して,1を2に置き換えたものが答え.回答例
K = int(input()) tmp = [] while K > 0: if K % 2: tmp.append('2') else: tmp.append('0') K //= 2 print(''.join(reversed(tmp)))
bin(x)
を使うと,整数を先頭に "0b" が付いた 2 進文字列に変換できる.
【参考】組み込み関数 — Python 3.10.0b2 ドキュメント
これを使うと,次のように書ける.
K = list(bin(int(input()))[2:]) for i, k in enumerate(K): if k == '1': K[i] = '2' print(''.join(K))