java中求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和
时间: 2023-12-12 11:34:05 浏览: 34
以下是Java中求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和的代码示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
double sum = 0;
double a = 1, b = 1, c;
for (int i = 1; i <= n; i++) {
sum += a / b;
c = a + b;
a = b;
b = c;
}
System.out.printf("%.4f", sum);
}
}
```
输入n,程序会计算前n项的和并输出结果,保留小数点后4位。
相关问题
java递归1-1/2+1/3-1/5+1/8
Java递归可以用于计算多项式的前n项的和。根据提供的代码,可以看出该多项式的计算规则为1-1/2+1/3-1/4+1/5-1/6+...,其中分母的变化规律是每次加2。下面是一个示例递归函数来计算该多项式的和:
```java
public class Main {
public static void main(String[] args) {
Main main = new Main();
System.out.println(main.count(8)); // 传入n的值
}
public double count(int n) {
if (n == 0)
return 0;
if (n % 2 == 0) {
return 1.0 / n + count(n - 1);
} else {
return -1.0 / n + count(n - 1);
}
}
}
```
通过调用`count`方法,传入需要计算的n的值,即可得到对应的多项式的和。
java递归求 1-1/2+1/3-1/5+1/8-1/13+
Java递归求解1-1/2 1/3-1/5 1/8-1/13的过程如下:
```java
public class Main {
public static void main(String[] args) {
Main main = new Main();
System.out.println(main.calculate(1));
System.out.println(main.calculate(2));
System.out.println(main.calculate(3));
}
public double calculate(int n) {
if (n == 1) {
return 1;
} else {
int numerator = calculateNumerator(n);
int denominator = calculateDenominator(n);
return (double) numerator / denominator;
}
}
private int calculateNumerator(int n) {
if (n == 1) {
return 1;
} else {
return calculateNumerator(n-1) + n;
}
}
private int calculateDenominator(int n) {
if (n == 1) {
return 2;
} else {
return calculateDenominator(n-1) + n * 3 - 2;
}
}
}
```