challenge LL Golf Hole 6 - 10進数を2進数に基数変換する

与えられた10進数の整数を2進数に変換してください。ただし、与えられる整数は0以上とします。

与える整数についてはリテラルで与える、標準入力で与える、引数で与えるなどは自由とします。

余力のあるものはこのプログラムを短くしてみたり、さまざまな基数への変換に対応させてみてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。

1
2
# 標準入力から整数を受け取る
ruby -e 'puts gets.to_i.to_s(2)'

Posted feedbacks - Scala

標準入力経由で。

1
object M{def main(a:Array[String]):Unit=print(Integer.toString(readInt,2))}

lunlumoさんのをベースに、不要な部分を削ってみました。主な違いは

  • object M { def main ... } を object M extends Application { ... } に置き換え
  • Integer.toString(readInt,2) を readInt.toBinaryStringに置き換え

です。

1
object M extends Application{print(readInt.toBinaryString)}

効率無視、副作用なし、ユーティリティメソッドを使わないを目標に作っています。
scala h6.scala 1234 などで動作させます。
1
2
def b(i:Int,s:String):String=if(i>0) b(i/2,""+(i%2)+s) else s
println(b(args(0).toInt,""))

Index

Feed

Other

Link

Pathtraq

loading...