模数不为正:BigInteger
|
错误-模量不为正
BigInteger取值0或-ve,但我不知道在哪里
public int[] conCheck(BigInteger big)
{
int i=0,mul=1;
int a[]= new int[10];
int b[]= new int[10];
BigInteger rem[]= new BigInteger[11];
BigInteger num[]= new BigInteger[11];
String s=\"100000000\";//,g=\"9\";
//for(i=0;i<5;i++)
//s=s.concat(g);
BigInteger divi[]= new BigInteger[11];
divi[0]=new BigInteger(s);
num[0]=big;
for(i=0;i<10;i++)
{
int z = (int)Math.pow((double)10,(double)(i+1));
BigInteger zz = new BigInteger(String.valueOf(z));
divi[i+1]=divi[i].divide(zz);
num[i+1]=num[i].divide(zz);
}
{ for(i=0;i<10;i++)
{
rem[i] = num[i].mod(divi[i]);
b[i]=rem[i].intValue();
if(i>=4)
{
mul= b[i]*b[i-1]*b[i-2]*b[i-3]*b[i-4];
}
a[i]=mul;
}
}
return a;
}
与控制台错误
C:\\jdk1.6.0_07\\bin>java euler/BigConCheck1
Exception in thread \"main\" java.lang.ArithmeticException: BigInteger: modulus no
t positive
at java.math.BigInteger.mod(BigInteger.java:1506)
at euler.BigConCheck1.conCheck(BigConCheck1.java:31)
at euler.BigConCheck1.main(BigConCheck1.java:65)
没有找到相关结果
已邀请:
3 个回复
豆兢
的值是什么:
然后,您尝试除以divi [4](= 0),这显然会因您发布的异常而失败。
场竟矩喘崩
中引发ArithmeticException。 m为0。这就是为什么您要获取异常。
为陡土