//有一列分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列前20项之和;
时间: 2023-09-12 21:12:07 浏览: 48
这个数列可以通过斐波那契数列的递推公式来表示,即每一个数都是前两个数的和,但是分子和分母分别为前一个数的分子加分母和前一个数的分子。具体来说,第n个数的分子为第n-1个数的分子加分母,分母为第n-1个数的分子。
以下是用Python代码计算前20项之和的方法:
```python
a, b = 2, 1
sum = 0
for i in range(20):
sum += a / b
a, b = a + b, a
print(sum)
```
输出结果为:32.66026079864164,即这个数列前20项之和约为32.66。
相关问题
//有一列分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列前20项之和;c语言
以下是用C语言代码计算前20项之和的方法:
```c
#include <stdio.h>
int main() {
int a = 2, b = 1;
double sum = 0;
for (int i = 0; i < 20; i++) {
sum += (double)a / b;
int temp = a;
a = a + b;
b = temp;
}
printf("sum = %lf\n", sum);
return 0;
}
```
输出结果为:sum = 32.660261,即这个数列前20项之和约为32.66。注意要将分子或分母转换为double类型,否则结果会被截断。
c语言编写子函数fun求一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...的前n项之和,要求打印出每一个分数列项
以下是C语言编写的子函数fun求一分数序列的前n项之和,并打印出每一个分数列项的代码:
```c
#include <stdio.h>
float fun(int n)
{
float sum = 0.0, a = 2.0, b = 1.0, c;
int i;
for (i = 1; i <= n; i++)
{
sum += a / b;
c = a + b;
b = a;
a = c;
printf("%.0f/%.0f ", a, b); // 打印出每一个分数列项
}
return sum;
}
int main()
{
int n = 20;
printf("前%d项之和为:%.2f\n", n, fun(n));
return 0;
}
```
运行结果如下:
```
3/2 5/3 8/5 13/8 21/13 34/21 55/34 89/55 144/89 233/144 377/233 610/377 987/610 1597/987 2584/1597 4181/2584 6765/4181 10946/6765 17711/10946 28657/17711 前20项之和为:32.66
```