Java BigInteger mod 1000000007

Bor*_*ris -4 java biginteger fibonacci

所以我编写了可以找到N'th Fibonacci数的java代码.我的问题是,我必须输出答案%1000000007.我以为我可以通过写作来完成

System.out.println(answer.mod(1000000007));
Run Code Online (Sandbox Code Playgroud)

但它不允许我这样做,我得到一个错误"BigInteger类型中的方法mod(BigInteger)不适用于参数(int)"

有人可以帮助我,这是我的代码.

import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

public class dmoj
{
   public static void main(String[] args) throws IOException{
       Scanner scan = new Scanner(System.in);
       BigDecimal d, v, t, a;
       BigInteger  b;
       int index;

       int n = scan.nextInt();

       double phi1 = (1 + Math.sqrt(5)) / 2;
       double phi2 = (1 - Math.sqrt(5)) / 2;    
       double sqrt = Math.sqrt(5);

       d = new BigDecimal(phi1);
       v = new BigDecimal(phi2);
       a = new BigDecimal(sqrt);

       d = d.pow(n);
       v = v.pow(n);
       t = d.subtract(v);
       t = t.divide(a);

       b = t.toBigInteger();

       System.out.println(b.mod(1000000007)); //I get an error here.
   }
}
Run Code Online (Sandbox Code Playgroud)

Tod*_*odd 6

你必须传递另一个`BigInteger:

System.out.println(answer.mod(BigInteger.valueOf(1000000007)));
Run Code Online (Sandbox Code Playgroud)