首页 > 解决方案 > 使用递归的几何级数(Java)

问题描述

我有一个班级作业,我需要编写一个使用递归计算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。然后,该方法开始返回错误答案。我假设它与浮点数可以容纳的最大值有关。

有没有办法计算/存储超过原始数据类型最大值的值?

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

谢谢!

标签: javarecursionfactorial

解决方案


欢迎来到 StackOverflow!

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


推荐阅读