著名的菲波拉契(Fibonacci)数列,其第一项为0,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。为防止递归过度消耗系统资源,n最大为20。 输入格式: 输入需要打印的正整数n 输出格式: 打印菲波拉契(Fibonacci)数列中的前n项。 输入样例1: 10 输出样例1: 1 1 2 3 5 8 13 21 34 55 输入样例2: 35
时间: 2023-06-02 12:03:32 浏览: 520
C语言用递归法计算Fibonacci(斐波拉契)数列的第n项。
以下是Python3代码实现:
```python
n = int(input())
a, b = 0, 1
for i in range(n):
print(b, end=' ')
a, b = b, a + b
```
思路解析:
根据题目描述,菲波拉契数列的第一项为0,第二项为1,从第三项开始,每一项都是前两项的和。因此,我们可以使用两个变量 a 和 b 保存每次循环计算出的结果,其中 a 表示当前项的前一项,b 表示当前项。最开始 a 的值为0,b 的值为1,然后从第三项开始循环,每次计算出当前项 b,并输出 b 的值,然后将 a 更新为原来的 b,b 更新为两数之和 a + b,继续循环,直到输出 n 个数为止。
注意点:
1.输入的 n 最大为20,因此不必考虑 Fibonacci 数列递归过度导致的问题;
2.输出时需要用 end=' ' 控制数值间的空格;
3.细节问题:变量初始化时,a 应为0,因为第一项为0;循环次数应为 n,因为要输出 n 个数;输出样式应与要求一致,最后一个数后面不需要空格。
阅读全文