エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Pythonで毎日AtCoder #25 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Pythonで毎日AtCoder #25 - Qiita
おすすめされた問題を解きます。 ABC105-C 考えたこと まず、普通の2進数にするときの手法を考えます。... おすすめされた問題を解きます。 ABC105-C 考えたこと まず、普通の2進数にするときの手法を考えます。これで10進数を2進数に変換します。これを-2進数版にします。変更点は、余りは自然数になるのでうまく余りを調整しないといけない点です。 -2で割りきれるときは余りが出ないのでそのままn//2します。余りが出る時は、n-1してから-2で割るとうまく計算できます。 この計算方法でappendしていくと、答えの順番が逆なのでreverseします。あとは、joinで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.