LL Golf Hole 6 - 10進数を2進数に基数変換する
Posted feedbacks - Haskell
なんか同じような定義があっていまいちです。。。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | toChar n = (['0'..'9']++['A'..'Z']++['a'..'z'])!!n
toStr 0 _ = "0"
toStr n b = toStr' n b
where
toStr' 0 _ = ""
toStr' n b = toStr' (n `div` b) b ++ [toChar (n `mod` b)]
main = do
putStrLn $ toStr 0 10
putStrLn $ toStr 255 2
putStrLn $ toStr 255 10
putStrLn $ toStr 255 16
putStrLn $ toStr 255 32
|
2進数の無限リストを使って。
1 2 3 4 5 6 7 | a="1":(a>>=(\x->[x++"0",x++"1"]))
b=(!!)$"0":a
{-
> b 10
"1010"
-}
|


takano32
#7211()
[
Ruby
]
Rating0/6=0.00
与えられた10進数の整数を2進数に変換してください。ただし、与えられる整数は0以上とします。
与える整数についてはリテラルで与える、標準入力で与える、引数で与えるなどは自由とします。
余力のあるものはこのプログラムを短くしてみたり、さまざまな基数への変換に対応させてみてください。
※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。
see: Integer - Rubyリファレンスマニュアル
Rating0/6=0.00-0+
[ reply ]