Skip to content

Commit fa2ad5a

Browse files
committed
Various fancy methods - Iteration 2
1 parent 62f203e commit fa2ad5a

File tree

2 files changed

+104
-10
lines changed

2 files changed

+104
-10
lines changed

.idea/Numbers.iml

+10-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Various/english_number.rb

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
=begin
2+
Write a method which take an integer and return the English version of it.
3+
=end
4+
5+
def english_number number
6+
# No negative numbers. Range is 0 .. 9.999.
7+
if number < 0
8+
return 'Please enter a number zero or greater.Range is 0 .. 9.999.'
9+
end
10+
if number > 9999
11+
return 'Please enter a lower number. Range is 0 .. 9.999.'
12+
end
13+
if number == 0
14+
return 'zero'
15+
end
16+
17+
num_string = '' # this is the string we will return
18+
19+
ones_place = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
20+
tens_place = ['ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
21+
teenagers = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen']
22+
23+
# "left" is how much of the number we still have left to write out.
24+
# "write" is the part we are writing now.
25+
26+
left = number
27+
write = left/1000 # how many thousands left?
28+
left = left - write*1000 # subtract off those hundreds.
29+
30+
if write > 0
31+
thousands = english_number write
32+
if write == 1
33+
num_string = num_string + thousands + ' thousand'
34+
else
35+
num_string = num_string + thousands + ' thousands'
36+
end
37+
if left > 0
38+
num_string = num_string + ' ' # if we have tens, we need a space for them
39+
end
40+
end
41+
42+
write = left/100 # how many hundreds left?
43+
left = left - write*100 # subtract off those hundreds.
44+
45+
if write > 0
46+
hundreds = english_number write
47+
if write == 1
48+
num_string = num_string + hundreds + ' hundred'
49+
else
50+
num_string = num_string + hundreds + ' hundreds'
51+
end
52+
if left > 0
53+
num_string = num_string + ' ' # if we have tens, we need a space for them
54+
end
55+
end
56+
57+
58+
write = left/10 # how many tens left?
59+
left = left - write*10 # subtract off those tens
60+
61+
if write > 0
62+
if write == 1 && left > 0 # special exception for teenagers
63+
num_string = num_string + teenagers[left-1]
64+
left = 0
65+
else
66+
num_string = num_string + tens_place[write-1]
67+
end
68+
if left > 0
69+
num_string = num_string + ' '
70+
end
71+
end
72+
73+
write = left # how many ones left to write out?
74+
left = 0 # subtract off those ones
75+
76+
if write > 0
77+
num_string = num_string + ones_place[write-1]
78+
end
79+
num_string # we return the string we created
80+
end
81+
82+
puts english_number (0)
83+
puts english_number (9)
84+
puts english_number (10)
85+
puts english_number (11)
86+
puts english_number (17)
87+
puts english_number (32)
88+
puts english_number (88)
89+
puts english_number (99)
90+
puts english_number (100)
91+
puts english_number (101)
92+
puts english_number (234)
93+
puts english_number (3211)
94+
puts english_number (123123)

0 commit comments

Comments
 (0)