用Java编出程序:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列的前20项之和。
时间: 2023-12-11 16:02:31 浏览: 132
可以使用循环来计算这个数列的前20项之和。具体的实现如下:
```java
public class FractionSequenceSum {
public static void main(String[] args) {
int n = 20; // 前20项
double sum = 0;
int a = 2, b = 1;
for (int i = 1; i <= n; i++) {
sum += (double) a / b;
int tmp = a;
a = a + b;
b = tmp;
}
System.out.println("前" + n + "项之和为:" + sum);
}
}
```
输出结果为:
```
前20项之和为:32.66026079864164
```
因为这个数列是斐波那契数列的一种变形,所以其前n项之和也可以用斐波那契数列的通项公式来计算,即:
$F_{n+2}-1$
其中,$F_n$ 表示斐波那契数列的第n项。
相关问题
用Java写出:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列的前20项之和。的程序
以下是使用Java语言实现该程序的代码:
```java
public class Main {
public static void main(String[] args) {
int n = 20; // 前20项
double sum = 0; // 总和
double a = 2, b = 1; // 初始化第一项
for (int i = 1; i <= n; i++) {
sum += a / b;
double temp = a + b; // 计算下一项的分子
b = a; // 更新下一项的分母
a = temp; // 更新下一项的分子
}
System.out.printf("前%d项之和为%.4f", n, sum);
}
}
```
运行结果:
```
前20项之和为32.6603
```
解释:在循环中,我们不断计算这个数列的每一项,并使用 sum 变量来累加它们。为了计算下一项,我们使用斐波那契数列的规律:下一项的分子是当前项的分子与分母之和,下一项的分母是当前项的分子。最后,我们使用 printf 函数输出结果,保留四位小数。
用Java编写一个程序,题目为:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20之和。
这是一个经典的动态规划问题,可以使用斐波那契数列的思想来解决。首先,我们需要注意到这个分数序列实际上是两个等差数列的比值:分子是一个著名的斐波那契数列,而分母是从1开始的自然数序列。
下面是使用Java编写的程序:
```java
public class Main {
public static void main(String[] args) {
int n = 20;
long sum = 0; // 存储分数的和
for (int i = 0; i < n; i++) {
// 斐波那契数列的第i项
long fibTerm = fibonacci(i);
// 分母从1开始到i+1
long denominator = i + 1;
// 计算当前分数并累加到总和
sum += fibTerm / denominator;
}
System.out.println("前 " + n + " 项的和为:" + sum);
}
// 使用动态规划计算斐波那契数列的第n项
private static long fibonacci(int n) {
if (n <= 1) return n;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
}
```
在这个程序中,我们递归地计算斐波那契数列,并将其除以相应的分母,然后将结果累加到总和`sum`中。最后输出前20项的和。
阅读全文