用java算法求2/1+3/2+8/5+13/8......前二十项之和
时间: 2023-11-05 11:27:25 浏览: 44
public class Main {
public static void main(String[] args) {
double sum = 0; // 存储和
double a = 2, b = 1; // 分子分母的初始值
for (int i = 1; i <= 20; i++) { // 循环计算前20项的和
sum += a / b; // 累加上当前项的值
double c = a + b; // 计算下一项的分子
b = a; // 下一项的分母为当前项的分子
a = c; // 下一项的分子为当前项的分子与分母之和
}
System.out.println("前20项的和为:" + sum);
}
}
相关问题
java编程求1+3+5+...+n
以下是两种Java编程求1+3+5+...+n的例子:
1.使用递归思想完成1+3+5+...+n的求和算法
```java
public class SumOfOddNumbers {
public static void main(String[] args) {
int n = 10; // 假设n为10
int sum = sumOfOddNumbers(n);
System.out.println("1+3+5+...+" + n + "的和为:" + sum); // 输出:1+3+5+...+10的和为:25
}
public static int sumOfOddNumbers(int n) {
if (n == 1) {
return 1;
} else {
return n % 2 == 0 ? sumOfOddNumbers(n - 1) : sumOfOddNumbers(n - 2) + n;
}
}
}
```
2.使用一般for循环来完成1+3+5+...+n的求和算法
```java
public class SumOfOddNumbers {
public static void main(String[] args) {
int n = 10; // 假设n为10
int sum = 0;
for (int i = 1; i <= n; i += 2) {
sum += i;
}
System.out.println("1+3+5+...+" + n + "的和为:" + sum); // 输出:1+3+5+...+10的和为:25
}
}
```
java求前 n 项之和功能关键 算法 多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...,现在要求出该多项式的前 n 项的和。 要求:结果保留两位小数
可以使用一个变量来记录当前项的符号(正数或负数),然后用一个循环来累加每一项的值,最后返回总和即可。具体实现如下:
```java
public static double sum(int n) {
double sum = 0.0;
int sign = 1;
for (int i = 1; i <= n; i++) {
double term = sign * 1.0 / i;
sum += term;
sign = -sign;
}
return Math.round(sum * 100.0) / 100.0; // 保留两位小数
}
```
这个算法的时间复杂度是 O(n),空间复杂度是 O(1)。