检索极大数字的第一个数字

时间:2016-06-06 10:06:19

标签: java biginteger digit

有一个int类型的数组。我必须将它的一些元素相乘并报告产品%(10 ^ 9 + 7)和产品的第一个数字。 我已经尝试使用BigInteger类Java,但报告的答案不正确。 我只是想知道是否存在任何此类算法来跟踪第一个数字并且不使用BigInteger。

这是我尝试过的。

c= (Prod.bitCount())*Math.log10(2);
c2= (int)c;
First= (Prod.divide(TEN.pow(c2))).intValue(); 
if(First/10 != 0) First/=10;
System.out.print(First+" ");
//finding Prod%M
System.out.print(Prod.mod(M)+"\n");

2 个答案:

答案 0 :(得分:1)

int x = Integer.parseInt(""+prod.toString().charAt(0));

我认为有人在上面有类似的评论。

答案 1 :(得分:0)

 int prod;
     ...
 int first = prod / 
    ((int)Math.pow(10, (int)Math.log10(prod)));

这是未经测试的,只是在我的头顶,但应该给出一般的想法。