文章目录
前言
本专栏从「基础」的编程知识开始,带你了解「基础算法」以及「Python的美」与「函数」的方便与快捷之处。收集 「100例Python语言基础入门题」,包含 「考试真题」, 「LeetCode基础题」,并且加入详细的解题思路以及难度分析。
此100例部分为『本人』收集,部分为本人自己所想,从『入门』开始,到『进阶』结束,『实际操作』加解题分析,让你『彻底掌握』Python语言基础
1. 题目描述
斐波那契数列。
2. 程序分析
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0) F1 = 1 (n=1) Fn = F[n-1]+ F[n-2](n=>2)
3. 程序源代码
1) 滑动窗口
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Smly # @datetime: 2021/11/2 21:06 # @Version: 1.0 # 方法名字说出来感觉复杂,其实就是将数列前两项列出来,然后使用通项公式计算 def fib(n): a,b = 1,1 for i in range(n-1): a,b = b,a+b return a # 输出了第10个斐波那契数列 print (fib(10))
2) 递归
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Smly # @datetime: 2021/11/2 21:06 # @Version: 1.0 # 使用递归 def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) # 输出了第10个斐波那契数列 print (fib(10))
4. 运行结果
55
5. 难度分析
- 方法不太好想,但是想出来方法就很简单
- 递归细节地方容易出错
6. 涉及知识点
- 递归
- 高中数学数列通项公式