Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
78
Task/Number-names/Java/number-names-1.java
Normal file
78
Task/Number-names/Java/number-names-1.java
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
public enum IntToWords {
|
||||
;
|
||||
|
||||
private static final String[] small = {
|
||||
"", "one", "two", "three", "four",
|
||||
"five", "six", "seven", "eight", "nine",
|
||||
"ten", "eleven", "twelve", "thirteen", "fourteen",
|
||||
"fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
|
||||
private static final String[] tens = {
|
||||
"", "", "twenty", "thirty", "forty",
|
||||
"fifty", "sixty", "seventy", "eighty", "ninety"};
|
||||
private static final String[] big = {
|
||||
"", "thousand", "million", "billion", "trillion",
|
||||
"quadrillion", "quintillion"};
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(int2Text(0));
|
||||
System.out.println(int2Text(10));
|
||||
System.out.println(int2Text(30));
|
||||
System.out.println(int2Text(47));
|
||||
System.out.println(int2Text(100));
|
||||
System.out.println(int2Text(999));
|
||||
System.out.println(int2Text(1000));
|
||||
System.out.println(int2Text(9999));
|
||||
System.out.println(int2Text(123_456));
|
||||
System.out.println(int2Text(900_000_001));
|
||||
System.out.println(int2Text(1_234_567_890));
|
||||
System.out.println(int2Text(-987_654_321));
|
||||
System.out.println(int2Text(Long.MAX_VALUE));
|
||||
System.out.println(int2Text(Long.MIN_VALUE));
|
||||
}
|
||||
|
||||
public static String int2Text(long number) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
if (number == 0) {
|
||||
return "zero";
|
||||
}
|
||||
|
||||
long num = -Math.abs(number);
|
||||
|
||||
int unit = 1;
|
||||
while (true) {
|
||||
int rem100 = (int) -(num % 100);
|
||||
if (rem100 >= 20) {
|
||||
if (rem100 % 10 == 0) {
|
||||
sb.insert(0, tens[rem100 / 10] + " ");
|
||||
} else {
|
||||
sb.insert(0, tens[rem100 / 10] + "-" + small[rem100 % 10] + " ");
|
||||
}
|
||||
} else if (rem100 != 0) {
|
||||
sb.insert(0, small[rem100] + " ");
|
||||
}
|
||||
|
||||
int hundreds = (int) -(num % 1000) / 100;
|
||||
if (hundreds != 0) {
|
||||
sb.insert(0, small[hundreds] + " hundred ");
|
||||
}
|
||||
|
||||
num /= 1000;
|
||||
if (num == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
int rem1000 = (int) -(num % 1000);
|
||||
if (rem1000 != 0) {
|
||||
sb.insert(0, big[unit] + " ");
|
||||
}
|
||||
unit++;
|
||||
}
|
||||
|
||||
if (number < 0) {
|
||||
sb.insert(0, "negative ");
|
||||
}
|
||||
|
||||
return sb.toString().trim();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue