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. 涉及知识点

  1. 递归
  2. 高中数学数列通项公式

结语

粉丝福利

关注博主公众号,领取更多精彩内容

以上是关于Python100例斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

python实现斐波那契数列

如何使用Python输出一个[斐波那契数列]

斐波那契数列

python做斐波那契数列。

python代码实现斐波那契数列数列

python递归求斐波那契数列前10项