blob: 7fb6ca6e8679256dbd53be83681a6f091bbd3b13 (
plain) (
blame)
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
|
import java.util.ArrayList;
import java.math.*;
public class Training {
public static void main(String args[]){
//PrintFibonacci(7);
System.out.println(NumberName(6783508));
}
public static String NumberName(int num) {
StringBuilder name = new StringBuilder(num < 0 ? "negative " : "");
var number_parts = new ArrayList<Integer>();
while (num != 0) {
number_parts.add(Math.abs(num % 1000));
num /= 1000;
}
for (int i = number_parts.size() - 1; i > -1; i--){
int curr_num = number_parts.get(i);
if ((curr_num + "").length() == 3) {
name.append(SmallNumName(curr_num / 100)).append(" hundred ");
curr_num %= 100;
if (curr_num / 10 == 0) name.append("and ");
}
name.append(SmallNumName(curr_num));
switch (i) {
case 1: name.append(" thousand "); break;
case 2: name.append(" million "); break;
case 3: name.append(" milliard "); break;
}
}
return name.toString();
}
private static String SmallNumName(int num) {
int part = 1;
switch (num) {
case 0: return "";
case 1: return "one";
case 2: return "two";
case 3: return "three";
case 4: return "four";
case 5: return "five";
case 6: return "six";
case 7: return "seven";
case 8: return "eight";
case 9: return "nine";
case 10: return "ten";
case 11: return "eleven";
case 12: return "twelve";
case 13: return "thirteen";
case 15: return "fifteen";
case 18: return "eighteen";
case 14: part = 4;
case 16: if (part == 1) part = 6;
case 17: if (part == 1) part = 7;
case 19: if (part == 1) part = 9;
return SmallNumName(part) + "teen";
}
if (num > 20 && num < 100) {
int f_digit = num / 10;
StringBuilder name = new StringBuilder();
switch (f_digit) {
case 2: name.append("twenty "); break;
case 3: name.append("thirty "); break;
case 5: name.append("fifty "); break;
case 8: name.append("eighty "); break;
default: name.append(SmallNumName(f_digit)).append("ty "); break;
}
return name + SmallNumName(num % 10);
}
return "ERR";
}
public static void PrintFibonacci (int length) {
int a = 1, b = 0;
for (int i = 0; i < length; i++){
System.out.printf("%d ", a);
int temp = a;
a += b;
b = temp;
}
}
}
|