Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Write a program that converts numerical values (ie. 5) into their English equivalent (five).
- print "Enter a postive number: "
- user_number = gets.chomp.to_i
- def english_number(number)
- number_string = ''
- ones = "One Two Three Four Five Six Seven Eight Nine".split(' ')
- tens = "Twenty Thirty Fourty Fifty Sixty Seventy Eighty Ninety".split(' ')
- teens = "Eleven Twelve Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen".split(' ')
- if number < 0
- return "Please enter a positive integer."
- end
- if number == 0
- return "Zero"
- end
- if number >= 1*10E8
- # Billions
- number_string += english_number(number / (1*10E8.to_i)) + " Billion"
- number -= (number / (1*10E8.to_i)) * (1*10E8.to_i)
- number_string += " " if number > 0
- end
- if number >= 1*10E5
- # Millions
- number_string += english_number(number / (1*10E5.to_i)) + " Million"
- number -= (number / (1*10E5.to_i)) * (1*10E5.to_i)
- number_string += " " if number > 0
- end
- if number >= 1*10E2
- # Thousands
- number_string += english_number(number / (1*10E2.to_i)) + " Thousand"
- number -= (number / (1*10E2.to_i)) * (1*10E2.to_i)
- number_string += " " if number > 0
- end
- if number >= 1*10E1
- # Hundreds
- number_string += english_number(number / (1*10E1.to_i)) + " Hundred"
- number -= (number / (1*10E1.to_i)) * (1*10E1.to_i)
- number_string += " " if number > 0
- end
- if number >= 20
- # Tens
- tens_val = number/10
- number_string += tens[number/10 - 2]
- number -= tens_val * 10
- number_string += " " if number > 0
- end
- if number > 10
- # Teens
- number_string += teens[number % 10 - 1]
- number %= 10
- number_string += " " if number > 0
- end
- if number == 10
- number_string += "Ten"
- else
- number_string += ones[number - 1]
- end
- return number_string
- end
- puts "You entered " + english_number(user_number)
Advertisement
Add Comment
Please, Sign In to add comment