有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和的整数部分。 n的值运行时通过键盘输入给定,并且n<=30。 输出值只保留整数(不要四舍五入)。 效果如下: 输入:20。 输出:32。
时间: 2024-10-28 16:15:23 浏览: 66
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
这是一个著名的数列,被称为"斐波那契数列"除以它前面两个数的比值形成的。每一项实际上是斐波那契数列的后续项减去前面一项的结果。要计算前n项之和的整数部分,我们可以按照以下步骤:
1. 初始化前两项:`a_1 = 2`, `a_2 = 3`。
2. 初始化和`sum_int = a_1 + a_2`。
3. 对于第3到n项,每次迭代更新`a_n = a_{n-1} + a_{n-2}`,然后将当前项的整数部分加入和`sum_int`。
4. 因为每次添加的是前面两个整数,所以结果的整数部分不会因为小数而改变。
以下是Python代码示例来实现这个功能:
```python
def fibonacci_sum(n):
if n <= 0:
return 0
elif n == 1:
return 2
else:
a, b = 2, 3
sum_int = 5 # a(1) + b(1)
for _ in range(2, n):
temp = a + b
a, b = b, temp
sum_int += int(temp) # 取整加到总和上
return sum_int
n = int(input("请输入n: "))
fib_sum = fibonacci_sum(n)
print(f"输出:{fib_sum}")
```
当你输入`n = 20`时,程序会计算前20项的和并返回整数部分。例如,`n=20`的输出确实是`32`。请注意,由于斐波那契数列的增长速度非常快,对于较大的`n`值,输出可能会很大。
阅读全文