biginteger写的斐波那契数列运行不了,如何解决?(语言-java)

img


测试数据50超出int的最大范围,所以我就想直接换成biginteger结果直接运行不了了,就算输入0,1也没结果输出

BigInteger需要用equals判断值,用==判断的是内存地址,没有退出边界,相当于死循环了
参考代码

public static BigInteger fib(BigInteger n) {
    // 递归写法
    if (n.equals(BigInteger.valueOf(0))) //初始化
        return BigInteger.valueOf(0);
    if (n.equals(BigInteger.valueOf(1)) || n.equals(BigInteger.valueOf(2)))
        return BigInteger.valueOf(1);
    return fib(n.subtract(BigInteger.valueOf(1))).add(fib(n.subtract(BigInteger.valueOf(2))));
}