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
58
59
60
61
62
63
64
65
66
67 | class Solution {
Map<Integer, String> map = new HashMap<>();
public String numberToWords(int num) {
map.put(0, "Zero");
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
map.put(4, "Four");
map.put(5, "Five");
map.put(6, "Six");
map.put(7, "Seven");
map.put(8, "Eight");
map.put(9, "Nine");
map.put(10, "Ten");
map.put(11, "Eleven");
map.put(12, "Twelve");
map.put(13, "Thirteen");
map.put(14, "Fourteen");
map.put(15, "Fifteen");
map.put(16, "Sixteen");
map.put(17, "Seventeen");
map.put(18, "Eighteen");
map.put(19, "Nineteen");
map.put(20, "Twenty");
map.put(30, "Thirty");
map.put(40, "Forty");
map.put(50, "Fifty");
map.put(60, "Sixty");
map.put(70, "Seventy");
map.put(80, "Eighty");
map.put(90, "Ninety");
map.put(100, "Hundred");
map.put(1000, "Thousand");
map.put(1000000, "Million");
map.put(1000000000, "Billion");
return helper(num);
}
String toString(int gra, int num){
int cnt = num/gra;
String s = helper(cnt) + " " + map.get(gra) ;
int r = num%gra;
if(r>0) s += " " + helper(r);
return s;
}
String helper(int num){
String s = "";
if(num<=20) return map.get(num);
else if(num<100){//(20, 100)
int r = num%10;
s = map.get(num-r);
if(r>0) s += " " + helper(r);
return s;
}else if(num<1000){//[10 , 1000)
s = toString(100, num);
}else if(num<1000000){//[1000, 1000000)
s = toString(1000, num);
}else if(num<1000000000){//[1000000, 1000000000)
s = toString(1000000, num);
}else{//[1000000000,
s = toString(1000000000, num);
}
return s;
}
}
|