Проблема Каттиса: Октални не работает для всех входных данных
Я пытаюсь решить следующую проблему с Каттисом, которая принимает двоичное число и преобразует его в восьмеричное число. Я перепробовал множество входных данных (до 30 двоичных цифр), и каждый пробный ввод корректно преобразовывается в восьмеричное. Однако тестирование его с помощью Kattis приводит к появлению сообщения "Неправильный ответ" примерно на полпути во время тестирования различных тестовых случаев. Мой код прилагается ниже.
Кто-нибудь знает какие-либо входные данные, которые не могут решить эту проблему, о которых они могли бы сообщить мне? Спасибо!
import java.util.Scanner;
import java.math.*;
public class Oktalni{
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
String binNumeral = sc.nextLine();
double decSum = 0.0;
//double decSum = 0.0;
//Iterate through the string, processing characters and adding the sum in decimal
int currIndex = 0;
for (int i=binNumeral.length();i >0; i--)
{
if (binNumeral.charAt(currIndex)=='1')
{
decSum = decSum + 1*(Math.pow(2.0,(i-1)));
currIndex++;
}
else if (binNumeral.charAt(currIndex)=='0')
{
decSum = decSum +0*(Math.pow(2.0,i)) ;
currIndex++;
}
else
{
//do nothing
}
}
//Convert from decimal to octal
BigInteger octSum = BigDecimal.valueOf(decSum).toBigInteger();
System.out.println(octSum.toString(8));
}
}