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. 高中数学数列通项公式



目录
相关文章
|
3月前
|
Python
Python实现递归的方式来生成斐波那契数列
Python实现递归的方式来生成斐波那契数列
|
2月前
|
Python
【Python 训练营】N_5 斐波那契数列
【Python 训练营】N_5 斐波那契数列
21 2
|
3月前
|
Python
python实现斐波那契数列案例代码
python实现斐波那契数列递归实现斐波那契数列:
25 0
|
11月前
|
算法 Python
python实现斐波那契数列的多种方式
python实现斐波那契数列的多种方式
|
3月前
|
存储 Python
Python写斐波那契数列
Python写斐波那契数列
21 0
|
3月前
|
存储 Python
用 Python 实现斐波那契数列。
【2月更文挑战第9天】【2月更文挑战第25篇】用 Python 实现斐波那契数列。
32 0
|
Python
Python实现斐波那契数列
Python实现斐波那契数列
267 0
|
Python
Python列表实现斐波那契数列
Python列表实现斐波那契数列
127 0
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
|
Python
Python 改进斐波那契数列递归后,计算第1000万项只需4秒
Python 改进斐波那契数列递归后,计算第1000万项只需4秒
150 0