# Untitled

a guest
Aug 22nd, 2019
88
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. class Solution {
2. HashMap<Integer, String> base = new HashMap<>();
3. public Solution() {
4. base.put(0, "");
5. base.put(1, "One ");
6. base.put(2, "Two ");
7. base.put(3, "Three ");
8. base.put(4, "Four ");
9. base.put(5, "Five ");
10. base.put(6, "Six ");
11. base.put(7, "Seven ");
12. base.put(8, "Eight ");
13. base.put(9, "Nine ");
14. base.put(10, "Ten ");
15. base.put(11, "Eleven ");
16. base.put(12, "Twelve ");
17. base.put(13, "Thirteen ");
18. base.put(14, "Fourteen ");
19. base.put(15, "Fifteen ");
20. base.put(16, "Sixteen ");
21. base.put(17, "Seventeen ");
22. base.put(18, "Eighteen ");
23. base.put(19, "Nineteen ");
24.
25. base.put(20, "Twenty ");
26. base.put(30, "Thirty ");
27. base.put(40, "Forty ");
28. base.put(50, "Fifty ");
29. base.put(60, "Sixty ");
30. base.put(70, "Seventy ");
31. base.put(80, "Eighty ");
32. base.put(90, "Ninety ");
33. }
34. public String numberToWords(int num) {
35. StringBuilder sb = new StringBuilder();
36. int billions = num/1_000_000_000;
37. if(billions != 0) {
38. processUnder1000(billions, sb);
39. sb.append("Billion ");
40. }
41. num %= 1_000_000_000;
42. int millions = num/1_000_000;
43. if(millions != 0) {
44. processUnder1000(millions, sb);
45. sb.append("Million ");
46. }
47. num %= 1_000_000;
48. int thousands = num/1000;
49. if(thousands != 0) {
50. processUnder1000(thousands, sb);
51. sb.append("Thousand ");
52. }
53. num %= 1000;
54. processUnder1000(num, sb);
55. if(sb.length() == 0) {
56. return "Zero";
57. } else {
58. sb.setLength(sb.length() - 1);
59. return sb.toString();
60. }
61. }
62.
63. void processUnder1000(int num, StringBuilder sb) {
64. if(num < 20) {
65. sb.append(base.get(num));
66. } else {
67. if(num > 99) {
68. sb.append(base.get(num/100)).append("Hundred ");
69. processUnder1000(num%100, sb);
70. } else {
71. num%=100;
72. int rem = num%10;
73. num -= rem;
74. sb.append(base.get(num)).append(base.get(rem));
75. }
76. }
77. }
78. }
RAW Paste Data