From 7e7b56db42ceb8d2b8973eae678fa4b58d5d3659 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 13 May 2009 23:32:40 -0500 Subject: add old solutions --- 17.lua | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 17.lua (limited to '17.lua') diff --git a/17.lua b/17.lua new file mode 100644 index 0000000..d745419 --- /dev/null +++ b/17.lua @@ -0,0 +1,38 @@ +function num_to_words(n) + local digits = {"one", "two", "three", "four", "five", + "six", "seven", "eight", "nine"} + local teens = {"eleven", "twelve", "thirteen", "fourteen", "fifteen", + "sixteen", "seventeen", "eighteen", "nineteen"} + local tens = {"ten", "twenty", "thirty", "forty", "fifty", + "sixty", "seventy", "eighty", "ninety"} + local ret = "" + if n == 1000 then return digits[1] .. "thousand" end + if n >= 100 then + local hundred = math.floor(n / 100) + ret = ret .. digits[hundred] .. "hundred" + n = n - hundred * 100 + if n > 0 then ret = ret .. "and" end + end + if n >= 10 then + if n == 10 then return ret .. tens[1] end + if n < 20 then + return ret .. teens[n - 10] + else + local ten = math.floor(n / 10) + ret = ret .. tens[ten] + n = n - ten * 10 + end + end + if n >= 1 then + ret = ret .. digits[n] + end + return ret +end + +local sum = 0 +for i = 1, 1000 do + local text = num_to_words(i) + print(i .. ": " .. text .. " (" .. text:len() .. ")") + sum = sum + text:len() +end +print(sum) -- cgit v1.2.3-54-g00ecf