5分問題 やってみた。

(サンプル問題 問題No:201)
■Q1.桁数の不明な整数xの各位の値を合計したものを返す関数を作りなさい。(例:x=123 の場合、1 + 2 + 3 = 6 となる)

w2ソリューション株式会社を志望される方へ
事前通知問題に対する回答は、下記「A、B、C、Z」の区分で回答をお願いします。

「A」:何も参照せずに、5分以内でとける。
「B」:何も参照せずに、15分以内でとける。
「C」:調べながら、正確にとける。
「Z」:正確にとけない。

5分ということだけど時間が余ったので三つ書いてみた。
なぜか、JavaScript はやる気がしなかった。

f :: Int -> Int
f 0 = 0
f x = x `mod` 10 + f (x `div` 10)
main = do print $ f $ abs 12345

はじめ (x / 10) と、書いて一瞬はまった

x = 12345
p(x.to_s.scan(/./).inject(0){|r, v| r + v.to_i })

偶然のようなものだけど、負でも大丈夫

x := 12345
sum := 0
while (x > 0,
  sum = sum + (x % 10)
  x = (x / 10) floor
)
sum println

ちょうど、今日 io の最新版をコンパイルしたので試したんだけれど、なんかひどいね。
忘却してる。