蓝桥杯python斐波那契数列真题
时间: 2025-05-14 18:20:12 浏览: 23
### 蓝桥杯 Python 斐波那契数列 真题及解答
蓝桥杯竞赛中涉及 Python 实现斐波那契数列的题目通常会考察选手对于循环、递归以及模运算的理解能力。以下是基于引用内容中的相关内容,提供的一道典型真题及其解答。
#### 题目描述
给定正整数 \( n \),求第 \( n \) 项 Fibonacci 数列的值,并对结果取模 10007 输出最终答案[^4]。
#### 输入格式
输入一个正整数 \( n \) (其中 \( 1 \leq n \leq 10^6 \))。
#### 输出格式
输出第 \( n \) 项 Fibonacci 数列的结果并对 10007 取模后的数值。
---
#### 解法分析
为了高效解决此问题,可以采用迭代方法而非递归来计算 Fibonacci 数列。原因在于递归方式的时间复杂度较高 (\( O(2^n) \)),而迭代方法仅需线性时间复杂度 (\( O(n) \)) 和常量空间复杂度 (\( O(1) \))。
具体实现如下:
1. 初始化两个变量 `a` 和 `b` 表示前两项 Fibonacci 数列的初始值。
2. 使用循环逐步更新当前项和下一项的值,直到达到目标位置 \( n \)。
3. 对每次计算结果取模 10007,以防止溢出并满足题目要求。
---
#### Python 实现代码
```python
n = int(input())
a, b = 1, 1 # 初始条件:F(1)=1, F(2)=1
for i in range(2, n): # 循环从第三项开始
a, b = b, (a + b) % 10007 # 更新状态并取模
print(b)
```
上述代码通过简单的迭代实现了高效的 Fibonacci 计算过程,并利用了取模操作来优化存储需求。
---
#### 测试样例
| **输入** | **输出** |
|----------|----------|
| 1 | 1 |
| 2 | 1 |
| 10 | 55 |
测试说明:当输入为 1 或 2 时,由于初始化已设定为 1,因此无需额外处理;而对于更大的 \( n \),程序能够正确返回对应的 Fibonacci 值并完成取模操作。
---
阅读全文
相关推荐


















