java - 使用递归的几何级数(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。然后,该方法开始返回错误答案。我假设它与浮点数可以容纳的最大值有关。
有没有办法计算/存储超过原始数据类型最大值的值?
在我看来,递归不是计算几何级数的好方法,但也许我只是遗漏了一些东西。有什么建议么?
谢谢!
解决方案
欢迎来到 StackOverflow!
对于处理大量数字,您可以尝试查看BigDecimal或BigInteger类。还有另一个 StackOverflow 问题(Find the factorial using recursion with the BigInteger Class)应该与您的情况非常相似
推荐阅读
- powerbi - PowerBI - 找不到新的计算表
- python - Altair:将 Log10 轴裁剪到所需的间隔(域)
- asp.net-mvc - 如何在 ASP.NET MVC 中执行混合个人用户帐户/aad 身份验证?
- assembly - 鉴于前两个参数是动态数组,我如何访问函数的最后一个参数的值?
- spring-mvc - 除非使用 GobalScope 调用,否则按顺序调用 kotlin 异步调用
- javascript - 如何让 Phaser 应用我的 game.js 文件中的更改?
- android - 如何使用 URL 自定义 ImageView?
- sql - 如何根据sql中玩家的身高在表格中根据身高查找排名
- java - Apache Beam - 在管道中添加延迟
- ssis - 将 SSIS 包从服务器 A 部署到服务器 B