Find Sum of the Series 0.6, 0.06, 0.006, 0.0006, …to n Terms in Java

2025 年 5 月 8 日 | 阅读 5 分钟

给定项数 n,计算数列 0.6, 0.06, 0.006, 0.0006, … 前 n 项的和。

输入: n=4

输出 0.6666

解释: 数列前 4 项的和

0.6+0.06+0.006+0.0006= 0.66660

输入: n=5

输出 0.66666

解释: 数列前 5 项的和

0.6+0.06+0.006+0.0006+0.00006=0.66666

方法:使用等比数列公式

Java 程序通过公式计算一个数列的和,其中每一项是前一项的 1/10,起始项为 0.6。

Sn = a * (1 - rn) / (1 - r)

其中

  • a = 0.6 (首项),
  • r = 0.1 (每一项递减的因子),
  • n = 3 (项数)。

算法

步骤 1: 分配 a = 0.6 (首项),r = 0.1 (公比),以及 n = 3 (项数)。

步骤 2: 使用 Math.pow(r, n) 计算 rn

步骤 3: 应用公式 Sn = a * (1 - Math.pow(r, n)) / (1 - r) 来计算数列的和。

步骤 4: 将 a、r 和 n 的值代入公式以找到和。

步骤 5: 打印和以及 a、r 和 n 的值,格式化为小数点后六位。

实施

输出

 
Sum of the series with a=0.60, r=0.10, n=3 = 0.666000   

方法:使用循环计算和

该方法使用一个循环来迭代计算数列的和。在每次迭代中,将当前项加到和中,并通过乘以公比来更新项以计算下一项。

算法

步骤 1: 在数列中设置 n (项数)、a (首项) 和 r (公比) 的值。

步骤 2: 初始化 sum = 0.0 和 term = a (首项)。

步骤 3: 使用 for 循环迭代 n 次。在每次迭代中,将当前项加到 sum 中,并将 term 乘以公比 r 以计算下一项。

步骤 4: 在循环内,通过乘以 r 来更新 term。

步骤 5: 循环完成后,输出数列的和,保留 6 位小数。

实施

文件名:SeriesSumCalculator.java

输出

 
Sum of the series (using loop) = 0.666000   

方法:使用递归

代码中采用的方法是使用递归方法来计算等比数列的和。它会反复调用自身,在每次调用中将项数 (n) 减一,直到达到仅剩首项的基本情况。

算法

步骤 1: 定义数列的项数 n、初始项 a 和公比 r 的值。

步骤 2: 调用递归函数 calculateSum(a, r, n) 来确定数列的总和。

步骤 3: 在递归 函数中,检查 n 是否等于 1。如果为真,则返回 a 的值,因为只剩下初始项。

步骤 4: 如果 n > 1,则返回当前项 a 与调用 calculateSum(a * r, r, n - 1) 来计算后续项之和的递归调用之和。

步骤 5: 递归完成后,显示数列的总和,精度为 6 位小数。

实施

文件名:SeriesSumCalculator,java

输出

 
Sum of the series (using recursion) = 0.666000