中级农民
- 积分
- 120
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-6-5
- 最后登录
- 1970-1-1
|
/* 273. Integer to English Words
Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.
Example 1:
Input: 123
Output: "One Hundred Twenty Three"
Example 2:
Input: 12345
Output: "Twelve Thousand Three Hundred Forty Five"
Example 3:
Input: 1234567
Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
Example 4:
Input: 1234567891
Output: "One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety One"
*/
'''class Solution {
let ones = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"]
let tens = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
func numberToWords(_ num: Int) -> String {
var result = ""
numberToWordsHelper(num, &result)
return result
}
func numberToWordsHelper(_ num: Int, _ result : inout String) {
if num < 0 {
result.append("Minus ")
numberToWordsHelper(-num, &result)
} else if num >= 1000000000 {
numberToWordsHelper(num/1000000000, &result)
result.append(" Billion")
let remainder = num % 1000000000
if remainder > 0 {
result.append(" ")
numberToWordsHelper(remainder, &result)
}
} else if num >= 1000000 {
numberToWordsHelper(num/1000000, &result)
result.append(" Million")
let remainder = num % 1000000
if remainder > 0 {
result.append(" ")
numberToWordsHelper(remainder, &result)
}
} else if num >= 1000 {
numberToWordsHelper(num/1000, &result)
result.append(" Thousand")
let remainder = num % 1000
if remainder > 0 {
result.append(" ")
numberToWordsHelper(remainder, &result)
}
} else if num >= 100 {
numberToWordsHelper(num/100, &result)
result.append(" Hundred")
let remainder = num % 100
if remainder > 0 {
result.append(" ")
numberToWordsHelper(remainder, &result)
}
} else if num >= 20 {
result.append(tens[num/10])
let remainder = num % 10
if remainder > 0 {
result.append(" ")
numberToWordsHelper(remainder, &result)
}
} else {
result.append(ones[num])
}
}
}
|
|