Advertisement
Guest User

Untitled

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