如何用Java for循环计算x+x³+x⁵+x⁷+x⁹且不使用Math.pow
你的现有代码存在两个核心问题:
- 直接修改入参x的取值,导致后续计算的基础值被污染,无法得到正确的幂次结果
- 累加逻辑不符合多项式求和的要求,没有单独存储最终的累加和
正确实现代码
public class MyClass { public static void main(String args[]) { // 测试输入3.0,预期输出22143.0 System.out.println(calculateExp(3.0)); } public static double calculateExp(double x) { // 存储最终求和结果 double sum = 0.0; // 存储当前待累加的奇次幂项,初始值为第一项x^1 double currentTerm = x; for(int i = 1; i <= 9; i += 2) { sum += currentTerm; // 递推得到下一个奇次幂:x^(n+2) = x^n * x² currentTerm = currentTerm * x * x; } return sum; } }
实现说明
- 全程仅使用Java基础乘法运算,没有调用任何额外工具类方法,符合限制要求
- 利用递推规则计算下一个奇次幂,无需单独计算每一项的幂次,计算效率更高
- 测试验证:代入x=3时,计算结果为
3 + 3³ +3⁵ +3⁷ +3⁹ = 3+27+243+2187+19683 = 22143.0,和代码输出结果一致。
内容的提问来源于stack exchange,提问作者Christopher Wang
相关产品推荐
相关产品推荐

