代码之家  ›  专栏  ›  技术社区  ›  Darth7urtle

如何创建一个新的BigInteger变量并生成一个返回BigInteger的方法?[副本]

  •  -3
  • Darth7urtle  · 技术社区  · 7 年前
    BigInteger b = BigInteger.valueOf(calcFib(Integer.parseInt(args[0])));
    

    我试图运行它来为一个大的斐波那契数创建一个新的大整数,但每当我这样做时,就会抛出这个错误:

    error: cannot find symbol
    
        BigInteger b = BigInteger.valueOf(calcFib(Integer.parseInt(args[0])));
        ^
    symbol: class BigInteger
    
    location: class FibonacciCalculator 
    

    public static BigInteger calcFib (int n)
    {
        if(n == 1 || n == 2)
            return 1;
        else
        {
            return calcFib(n-1) + calcFib(n-2);
        }
    }
    

    if/else语句的两部分都会抛出错误,if表示int可以 '不能转换为BigInteger,否则表示操作数类型错误。再次为我的无知道歉,谢谢你的帮助!

    2 回复  |  直到 7 年前
        1
  •  2
  •   Shiv Kumar    7 年前

    BigInteger 类在内部定义 java.math.BigInteger .

        2
  •  1
  •   clstrfsck    7 年前

    在问题的第二部分中,如果使用 BinIntegers int long 类型,因为你不能使用通常的 + BigInteger .

    修订后的代码应如下所示:

    public static BigInteger calcFib(int n)
    {
        if(n == 1 || n == 2)
            return BigInteger.ONE;
        else
        {
            return calcFib(n - 1).add(calcFib(n - 2));
        }
    }