Python100例斐波那契数列
Posted 布小禅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python100例斐波那契数列相关的知识,希望对你有一定的参考价值。
前言
本专栏从「基础」的编程知识开始,带你了解「基础算法」以及「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. 涉及知识点
- 递归
- 高中数学数列通项公式
结语
关注博主公众号,领取更多精彩内容
以上是关于Python100例斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章