yu/logs/*

技術メモ など

AtCoder ABC156 B 解法メモ (Kotlinで)10進数⇔2進数の変換をしたい

サクっと済ませられる方法を見つけられたのでメモ

解いていた問題

atcoder.jp

解法メモ

  • 基数変換を実装してあげれば済む問題
    • けど、標準の関数でもっと簡単に記述できる。

      // 2進数⇔10進数
      println("4".toInt().toString(2)) // 100
      println("100".toInt(2))         // 4
      println("5".toInt().toString(2)) // 101
      println("101".toInt(2))         // 5
      // 3進数⇔10進数
      println("4".toInt().toString(3)) // 11
      println("100".toInt(3))         // 9
      println("5".toInt().toString(3)) // 12
      println("101".toInt(3))         // 10
      
    • ↓の感じで0パディングしてあげると二進表記の桁も揃う。

      println("1".toInt().toString(2).padStart(5, '0')) // 00001
      println("2".toInt().toString(2).padStart(5, '0')) // 00010
      println("3".toInt().toString(2).padStart(5, '0')) // 00011
      println("4".toInt().toString(2).padStart(5, '0')) // 00100
      
      • これならビット演算とかにも使えそう・・・?

提出した回答