我有一个课堂作业,我需要编写一种方法,使用递归为 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。然后,该方法开始返回错误答案。我假设它与浮点数可以容纳的最大值有关。
是否有一种方法可以计算/存储超出原始数据类型最大值的值?
在我看来,递归不是计算几何级数的好方法,但是也许我只是缺少了一些东西。有什么建议么?
谢谢!
答案 0 :(得分:0)
欢迎使用StackOverflow!
要处理大量数字,可以尝试查看BigDecimal或BigInteger类。还有另一个StackOverflow问题(Finding the factorial using recursion with the BigInteger Class)应该与您的情况非常相似