我正在尝试解决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));
}
}