Project Euler: Problem 17
やっぱり適当なんだけど…。
strlen 1 = "one" strlen 2 = "two" strlen 3 = "three" strlen 4 = "four" strlen 5 = "five" strlen 6 = "six" strlen 7 = "seven" strlen 8 = "eight" strlen 9 = "nine" strlen 10 = "ten" strlen 11 = "eleven" strlen 12 = "twelve" strlen 13 = "thirteen" strlen 14 = "fourteen" strlen 15 = "fifteen" strlen 16 = "sixteen" strlen 17 = "seventeen" strlen 18 = "eighteen" strlen 19 = "nineteen" strlen 20 = "twenty" strlen 30 = "thirty" strlen 40 = "forty" strlen 50 = "fifty" strlen 60 = "sixty" strlen 70 = "seventy" strlen 80 = "eighty" strlen 90 = "ninety" strlen 100 = "one"++"hundred" strlen 200 = "two"++"hundred" strlen 300 = "three"++"hundred" strlen 400 = "four"++"hundred" strlen 500 = "five"++"hundred" strlen 600 = "six"++"hundred" strlen 700 = "seven"++"hundred" strlen 800 = "eight"++"hundred" strlen 900 = "nine"++"hundred" strlen 1000 = "one" ++ "thousand" strlen n | n >= 100 = (strlen $ div n 100) ++ "hundred"++"and" ++ (strlen $ rem n 100) | otherwise = (strlen $ n - rem n 10) ++ (strlen $ rem n 10) main = print $ sum $ map (length . strlen) [1..1000]