用java编程求 ∑_(n=1)^(100)1/n 的值,即求 1+1/2+1/3+⋯+1/(100) 的值。
时间: 2023-11-09 13:08:28 浏览: 29
```java
public class Main {
public static void main(String[] args) {
double sum = 0;
for (int i = 1; i <= 100; i++) {
sum += 1.0 / i;
}
System.out.println(sum);
}
}
```
相关问题
java计算1+1/2+1/2^2+1/2^3…+1/2^n
可以使用循环来计算,每次将当前项加入总和中,直到加到第 n 项为止。具体实现如下:
```java
public class Main {
public static void main(String[] args) {
int n = 10; // 计算前n项和
double sum = 1.0; // 总和初始值为1
double item = 1.0; // 当前项初始值为1
for (int i = 1; i <= n; i++) {
item /= 2.0; // 计算下一项
sum += item; // 将当前项加入总和中
}
System.out.println("1+1/2+1/2^2+1/2^3+...+1/2^n = " + sum);
}
}
```
输出结果为:
```
1+1/2+1/2^2+1/2^3+...+1/2^n = 1.9990234375
```
注意,由于计算机的精度问题,当 n 很大时,可能会出现误差。
java利用递归方法求s=1/3+2/5+…+n/2n+1
好的,这是一个比较典型的递归问题。可以按照以下步骤来实现:
1. 定义递归函数,输入参数为n,表示求和的最大值。
2. 当n等于1时,返回1/3。
3. 当n大于1时,返回n/(2*n+1)加上递归调用函数f(n-1)的结果。
下面是Java代码实现:
```
public class Main {
public static void main(String[] args) {
int n = 5;
double sum = f(n);
System.out.println("s = " + sum);
}
public static double f(int n) {
if (n == 1) {
return 1.0 / 3;
} else {
return n * 1.0 / (2 * n + 1) + f(n - 1);
}
}
}
```
输出结果为:s = 0.7833333333333332