-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdigit_to_string.rb
More file actions
57 lines (56 loc) · 2.35 KB
/
digit_to_string.rb
File metadata and controls
57 lines (56 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
digits_arr = ["zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
units = ["Ten", "Hundred", "Thounsand", "Hundred Thounsand", "Million", "Hundred Million", "Billion" ]
tens = ["Ten", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
line_count = 0
result = []
ARGF.each_line do |line|
if line_count > 0
output_val = ""
count = 0
line = line.gsub("\n","")
size = line.size
line.each_char do |char|
if (!char.empty? && char != "\n")
if char.to_i != 0
if(size == 3)
output_val = "#{digits_arr[char.to_i]} "
output_val << "#{units[size - 2]} "
size -= 1
elsif(size == 2 )
output_val << "#{tens[char.to_i - 1]} "
size -= 1
elsif(size == 1)
output_val << "#{digits_arr[char.to_i]}"
elsif(size == 4)
output_val = "#{digits_arr[char.to_i]} "
output_val << "#{units[size - 2]} "
size -= 1
elsif (size > 4 and size < 6)
output_val << "#{tens[char.to_i - 1]} "
output_val << "#{units[size - 3]} "
size -= 1
elsif (size ==6)
output_val << "#{digits_arr[char.to_i]} "
output_val << "#{units[size - 3]}"
size -= 1
elsif (size > 6 and size < 9)
output_val << "#{tens[char.to_i - 1]} "
output_val << "#{units[size - 4]} "
size -= 1
elsif (size == 9)
output_val << "#{digits_arr[char.to_i]} "
output_val << "#{units[size - 4]} "
size -= 1
elsif (size == 10)
output_val << "#{digits_arr[char.to_i]} "
output_val << "#{units[size - 4]} "
size -= 1
end
end
end
end
result << output_val
end
line_count = line_count + 1
end
result.each { |number| puts number }