Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Integer
- def to_human()
- number_lookup = {
- 0 => "zero", 1 => "one", 2 => "two", 3 => "three", 4 => "four", 5 => "five", 6 => "six", 7 => "seven", 8 => "eight", 9 => "nine",
- 10 => "ten", 11 => "eleven", 12 => "twelve", 13 => "thirteen", 14 => "fourteen", 15 => "fifteen", 16 => "sixteen", 17 => "seventeen", 18 => "eighteen", 19 => "nineteen",
- 20 => "twenty", 30 => "thirty", 40 => "forty", 50 => "fifty", 60 => "sixty", 70 => "seventy", 80 => "eighty", 90 => "ninety",
- 100 => "one hundred", 200 => "two hundred", 300 => "three hundred", 400 => "four hundred",
- 500 => "five hundred", 600 => "six hundred", 700 => "seven hundred", 800 => "eight hundred", 900 => "nine hundred",
- 1000 => "one thousand"
- }
- digits = self.to_s.chars.map(&:to_i)
- case digits.length
- when 1
- number_lookup[self]
- when 2
- digits[0]*10 + digits[1] < 20 ? number_lookup[self] : (digits[1] == 0) ? number_lookup[digits[0] * 10] : "#{number_lookup[digits[0] * 10]} #{number_lookup[digits[1]]}"
- when 3
- (digits[1] == 0 and digits[2] == 0) ? number_lookup[self] : "#{number_lookup[digits[0] * 100]} and #{(digits[1] * 10 + digits[2]).to_human}"
- when 4
- number_lookup[self]
- end
- end
- end
- puts (1..1000).map(&:to_human).join.gsub(/\s+/, "").chars.length
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement