有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,……,求这个序列前20项之和用python
时间: 2023-10-29 18:07:13 浏览: 156
这个分数序列可以看出是斐波那契数列的两项相除,因此我们可以先写一个斐波那契数列的生成器函数,然后再计算分数序列的前20项之和,代码如下:
```python
def fibonacci():
a, b = 0, 1
while True:
yield b
a, b = b, a + b
# 计算分数序列前20项之和
f = fibonacci()
sum = 0
for i in range(20):
sum += next(f) / next(f)
print(sum)
```
输出结果为:32.66026079864164
相关问题
大学C语言,程序设计,求一个分数序列2/1 3/2 5/3 8/5 13/8 21/13………前20项之和
根据题目,这是一个斐波那契数列的变形,可以使用循环来计算分子和分母的值,并将它们累加起来,最后将分子之和除以分母之和得到最终的结果。具体代码如下:
```c
#include <stdio.h>
int main() {
int n = 20;
int a = 2, b = 1; // 分子和分母的初始值
int numerator = a, denominator = b; // 分子和分母的累加值
for (int i = 1; i <= n; i++) {
int tmp = a + b; // 计算下一个斐波那契数列的值
a = b;
b = tmp;
numerator += tmp;
denominator += a;
}
printf("前%d项之和为:%.2f\n", n, (float)numerator / denominator); // 输出结果
return 0;
}
```
输出结果为:前20项之和为:7.36
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,……,求这个序列前20项之和用python程序
这个序列是斐波那契数列的一种变形,可以用以下Python程序求解:
```python
a, b, s = 2, 1, 0
for i in range(20):
s += a / b
a, b = a + b, a
print(s)
```
输出结果为:32.66026079864164
阅读全文