有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13 ……,输入整数n,求出其前n项的和。 【输入】 正整数n。 【输出】 上述分数序列的前n项之和,输出数据格式为域宽16位,小数点后10位。
时间: 2024-11-06 20:24:26 浏览: 15
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
这个分数序列看起来像是著名的斐波那契数列(Fibonacci sequence)除以比它小的斐波那契数。每个分数的分子(分子上的数字)就是下一个斐波那契数,分母则是当前的斐波那契数。要计算前n项的和,我们可以先生成斐波那契数列,然后根据这个规律计算分数。
这是一个简单的Python程序,用于计算斐波那契分数序列的前n项和:
```python
def fibonacci(n):
fib_sequence = [0, 1]
for i in range(2, n + 1):
fib_sequence.append(fib_sequence[i - 1] + fib_sequence[i - 2])
return fib_sequence
def fibonacci_fraction_sum(n):
fib_sequence = fibonacci(n)
fraction_sum = sum([fib / (fib - 1) if fib > 1 else fib for fib in fib_sequence])
# 格式化输出到16位小数
formatted_sum = '{:.16f}'.format(fraction_sum)
return formatted_sum
# 示例
n = int(input("请输入正整数n: "))
result = fibonacci_fraction_sum(n)
print(result)
```
**相关问题--:**
1. 斐波那契数列是什么?
2. 如何用递归或循环生成斐波那契数列?
3. 在计算分数和时为什么要判断`fib > 1`?
4. Python中的`'{:.16f}'`是什么意思?
阅读全文