Hatena::ブログ(Diary)

みずぴー日記 Twitter

2010-08-30(月)

漢数字への変換

| 漢数字への変換を含むブックマーク

30分プログラム、その798。数字から漢数字への変換をやってみました。

1以上1億未満の数字にのみ対応してます。

使い方

*Main> kanji 10
十
*Main> kanji 42
四十二
*Main> kanji 12345
一万二千三百四十五

ソースコード

import qualified System.IO.UTF8 as U

right  = ["", "一", "二","三","四","五","六","七","八","九"]
left = ["", "二","三","四","五","六","七","八","九"]
sep p xs ys  = ys ++ [ x ++ p ++ y | x <- xs, y <- ys]

xs = sep "万" (tail ys) ys
    where ys = foldl (\x p -> sep p left x) right ["十","百","千"]

kanji n = U.putStrLn (xs !! n)

参考

clairvyclairvy 2010/08/30 18:44 ごぬんなさい.
間違いなく仕事です.
一応行ってみようと思いますが,
普通の時間には行けそうにないです.自分がヤバス

トラックバック - http://d.hatena.ne.jp/mzp/20100830/kanji