Проблема Каттиса: Октални не работает для всех входных данных - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь решить следующую проблему на Kattis , которая принимает двоичное число и преобразует его в восьмеричное число.Я перепробовал множество входных данных (до 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));
    }
}
...