Skip to content

Instantly share code, notes, and snippets.

@ednasawe
Created October 3, 2016 08:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ednasawe/70d45cec337786418f2b66eb76b4ed4c to your computer and use it in GitHub Desktop.
Save ednasawe/70d45cec337786418f2b66eb76b4ed4c to your computer and use it in GitHub Desktop.
intro_to_programming
def in_words(int)
numbers_to_name = {
1000000000000 => "trillion",
1000000000 => "billion",
1000000 => "milliom",
1000 => "thousand",
100 => "hundred",
90 => "ninety",
80 => "eighty",
70 => "seventy",
60 => "sixty",
50 => "fifty",
40 => "forty",
30 => "thirty",
20 => "twenty",
19 => "nineteen",
18 => "eighteen",
17 => "seventeen",
16 => "sixteen",
15 => "fifteen",
14 => "fourteen",
13 => "thirteen",
12 => "twelve",
11 => "eleven",
10 => "ten",
9 => "nine",
8 => "eight",
7 => "seven",
6 => "six",
5 => "five",
4 => "four",
3 => "three",
2 => "two",
1 => "one",
}
str = ""
numbers_to_name.each do |num, name|
if int == 0
return str
elsif int.to_s.length == 1 && int/num > 0
return str + "#{name}"
elsif int < 100 && int/num > 0
return str + "#{name}" if int%num == 0
return str + "#{name}" + in_words (int%num)
elsif int/num > 0
return str + in_words (int/num) + "#{name}" + in_words (int%num)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment