Erlangで数字→ローマ数字変換
勉強会に参加していないので宿題の内容は知らないのだけども,すぐに書けそうだったので...
大きな数を与えると遅そうだけど,たぶんそんな使い方はしないんじゃないかなぁと思って,手抜き.
大きな数を与えると遅そうだけど,たぶんそんな使い方はしないんじゃないかなぁと思って,手抜き.
-module(i2r). -export([i2r/1]). i2r(N) -> i2r(N, ""). i2r(N, S) when N >= 1000 -> i2r(N - 1000, S ++ "M"); i2r(N, S) when N >= 500 -> i2r(N - 500, S ++ "D"); i2r(N, S) when N >= 100 -> i2r(N - 100, S ++ "C"); i2r(N, S) when N >= 50 -> i2r(N - 50, S ++ "L"); i2r(N, S) when N >= 10 -> i2r(N - 10, S ++ "X"); i2r(N, S) when N >= 5 -> i2r(N - 5, S ++ "V"); i2r(N, S) when N >= 1 -> i2r(N - 1, S ++ "I"); i2r(_N, S) -> S.
The comments to this entry are closed.
Comments