Python100例(六)斐波那契数列

简介: Python100例(六)斐波那契数列

2.gif


文章目录


前言

本专栏从「基础」的编程知识开始,带你了解「基础算法」以及「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. 高中数学数列通项公式



目录
相关文章
|
6天前
|
Python
Python实现递归的方式来生成斐波那契数列
Python实现递归的方式来生成斐波那契数列
|
6天前
|
存储 Python
用 Python 实现斐波那契数列。
【2月更文挑战第9天】【2月更文挑战第25篇】用 Python 实现斐波那契数列。
|
8月前
|
算法 Python
python实现斐波那契数列的多种方式
python实现斐波那契数列的多种方式
|
11月前
|
Python
Python实现斐波那契数列
Python实现斐波那契数列
247 0
|
11月前
|
Python
Python列表实现斐波那契数列
Python列表实现斐波那契数列
111 0
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
|
12月前
|
Python
Python 改进斐波那契数列递归后,计算第1000万项只需4秒
Python 改进斐波那契数列递归后,计算第1000万项只需4秒
131 0
|
机器学习/深度学习 Python
python使用递归实现斐波那契数列
python使用递归实现斐波那契数列
164 0
|
Python
Python分别使用迭代与递归分别实现斐波那契数列
Python分别使用迭代与递归分别实现斐波那契数列
66 0
Python分别使用迭代与递归分别实现斐波那契数列
|
算法 Python
算法与python:一台每秒计算10亿次的计算机,使用递归法,从宇宙大爆炸计算到现在,能计算到第几个斐波那契数列?
算法与python:一台每秒计算10亿次的计算机,使用递归法,从宇宙大爆炸计算到现在,能计算到第几个斐波那契数列?
191 0