使用递归的几何级数(Java)

时间:2018-11-07 03:35:39

标签: java recursion factorial

我有一个课堂作业,我需要编写一种方法,使用递归为 n 个整数计算几何级数。

从用户处收到 n 的值。

public static float Geometric(float n)
{
    if(n==0)
        return 1;
    else 
    {
        if(n == 1)
            System.out.println(n); 
        else    
            return (n * Geometric(n-1)); 
    }
}

代码可以正常工作,直到 n 的值超过34。然后,该方法开始返回错误答案。我假设它与浮点数可以容纳的最大值有关。

是否有一种方法可以计算/存储超出原始数据类型最大值的值?

在我看来,递归不是计算几何级数的好方法,但是也许我只是缺少了一些东西。有什么建议么?

谢谢!

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

要处理大量数字,可以尝试查看BigDecimalBigInteger类。还有另一个StackOverflow问题(Finding the factorial using recursion with the BigInteger Class)应该与您的情况非常相似