利用java计算(1/(1+2))*(2/(2+3))*(3/(3+4)).....前n项相乘的积
时间: 2023-10-30 20:06:18 浏览: 81
以下是Java代码实现:
```
import java.math.BigDecimal;
public class ProductOfFractions {
public static void main(String[] args) {
int n = 10; // 前n项相乘
BigDecimal product = BigDecimal.ONE; // 初始化乘积为1
for (int i = 1; i <= n; i++) {
BigDecimal numerator = new BigDecimal(i); // 分子为i
BigDecimal denominator = numerator.add(BigDecimal.ONE); // 分母为i+1
BigDecimal fraction = numerator.divide(denominator, 100, BigDecimal.ROUND_HALF_UP); // 计算i/(i+1),保留100位小数
product = product.multiply(fraction); // 累乘各项
}
System.out.println("前" + n + "项相乘的积为:" + product);
}
}
```
解释:通过BigDecimal类实现高精度计算,循环计算每一项的分数值,累乘得到最终结果。其中,保留100位小数是为了避免精度误差。
阅读全文