43 lines
1.2 KiB
Java
43 lines
1.2 KiB
Java
// SumBigIntegerOctal.java
|
|
|
|
import java.math.BigInteger;
|
|
|
|
public class SumBigIntegerOctal {
|
|
|
|
public static void main(String[] args) {
|
|
BigInteger sum = new BigInteger("0");
|
|
for (String argument : args) {
|
|
StringBuilder number = new StringBuilder();
|
|
for (char c : argument.toCharArray()) {
|
|
if (!Character.isWhitespace(c)) {
|
|
number.append(c);
|
|
} else {
|
|
sum = sum.add(parseNumber(number));
|
|
number = new StringBuilder();
|
|
}
|
|
}
|
|
|
|
sum = sum.add(parseNumber(number));
|
|
}
|
|
|
|
System.out.println(sum);
|
|
}
|
|
|
|
static BigInteger parseNumber(StringBuilder number) {
|
|
if (!number.isEmpty()) {
|
|
String numberString = number.toString();
|
|
int numberStringLength = numberString.length();
|
|
if (numberString.endsWith("o") || numberString.endsWith("O")) {
|
|
return new BigInteger(
|
|
number.substring(0, numberStringLength - 1),
|
|
8
|
|
);
|
|
} else {
|
|
return new BigInteger(numberString);
|
|
}
|
|
} else {
|
|
return BigInteger.ZERO;
|
|
}
|
|
}
|
|
}
|