-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFigureInWords
117 lines (115 loc) · 2.45 KB
/
FigureInWords
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.util.Scanner;
public class FigureInWords {
String string;
String[] units = {"","One", "Two", "Three", "Four", "Five", "Six", "Seven","Eight","Nine"};
String[] teens ={"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen","Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
String[] tens = {"Twenty", "Thirty", "Fourty", "Fifty", "Sixty","Seventy", "Eighty", "Ninety"};
String[] hun = {"hundred", "thousand", "hundred thousand", "million","billion"};
String[] zero = {"zero"};
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
FigureInWords m = new FigureInWords();
System.out.print("Enter a number to convert to words (or 'done' to quit):"+scan.nextInt());
//s = sc.next();
//int n = Integer.parseInt(s);
int n = scan.nextInt();
String inwords = m.convert(n);
System.out.println("Value is "+inwords);
}
public String convert(int number) {
int n = 1;
int mandata;
string ="";
while(number!=0)
{
switch (n) {
case 1: mandata = number%100;
pass(mandata);
if (number>100 && number%100!=0) {
show("and ");
}
number/=100;
break;
case 2:mandata = number%10;
if (mandata!=0) {
show(" ");
show(hun[0]);
show(" ");
pass(mandata);
}
number/=10;
break;
case 3:mandata = number%100;
if (mandata!=0) {
show(" ");
show(hun[1]);
show(" ");
pass(mandata);
}
number/=100;
break;
case 4:mandata = number%100;
if (mandata!=0) {
show(" ");
show(hun[2]);
show(" ");
pass(mandata);
}
number/=100;
break;
case 5:mandata = number%100;
if (mandata!=0) {
show(" ");
show(hun[2]);
show(" ");
pass(mandata);
}
number/=100;
break;
case 6:mandata = number%1000;
if (mandata>100000) {
show(" ");
show(hun[4]);
show(" ");
pass(mandata);
}
number/=1000;
break;
default:
break;
}n++;
}
return string;
}
public void pass(int number) {
int word, q;
if (number==0) {
show(zero[0]);
}
if (number>0 && number < 10) {
show(units[number]);
}
if (number>9 && number<20) {
show(teens[number-10]);
}
if (number>19) {
word = number%10;
if (word ==0) {
q=number/10;
show(tens[q-2]);
}
else {
q=number/10;
show(units[word]);
show(" ");
show(tens[q-2]);
}
}
}
private void show(String s) {
String st;
st = string;
string = s;
string+=st;
}
}