page contents

python基础编程100例:第7期-斐波那契数列

本文讲述了python基础编程100例:第7期-斐波那契数列!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-MyXC8Xhk622957d0674c5.png

本文讲述了python基础编程100例:第7期-斐波那契数列!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

1 问题描述

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。

斐波那契数列指的是这样一个数列:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 ……

这个数列从第3项开始,每一项都等于前两项之和。

试用Python代码输出斐波那契数列前20项~

2 解题思路

用Python代码输出斐波那契数列,需把握住数列的特点:从第3项开始,每一项都等于前两项之和

因此我们可以使用递归、for循环等方法实现~

3 解题方法

方法一:递归

def fib1(n):

    if n == 1 or n == 2:

        return 1

    return fib1(n - 1) + fib1(n - 2)


for i in range(1, 21):

    print(fib1(i), end=' ')

第1行: 定义函数fib1,传入参数n

第2-4行: 用if...else语句进行判断,由于该数列从第三项开始,每个数的值为其前两个数之和,所以当n == 1或 n == 2时,返回值为1,这也是递归的结束条件;否则返回值为前两个数的和,即fib1(n-1) +fib1(n-2)

第6行: 用for语句遍历1-20的整数

第7行: 为参数n赋值为i, 并用end 将print输出到同一行并以空格结尾

递归函数的用法我们在第2期-求100以内奇数和 (opens new window)中有讲,大家可以查看哦~

方法二:for循环

def fib2(n):

    a, b = 0, 1

    for i in range(n + 1):

        a, b = b, a + b

    return a


for i in range(20):

    print(fib2(i), end=' ')

第1行: 定义函数fib2,传入参数n

第2行: 为a,b分别赋值为0和1

第3行: 用for循环遍历前n项的整数

第4行: 由于该数列从第三项开始,每个数的值为其前两个数之和,可写成a, b = b, a + b。这个式子中,右边的表达式会在赋值变动之前执行,即先执行右边,如第一次循环得到b-->1,a+b --> 0+1 然后再执行赋值 a,b =1,0+1,所以执行完这条后a=1,b=1

第5行: 返回a的值

第6行: 用for语句遍历前20的整数

第7行: 为参数n赋值为i, 并用end将print输出到同一行并以空格结尾

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-vGMoIIWn629330aa13f75.jpeg

  • 发表于 2022-03-10 09:43
  • 阅读 ( 690 )
  • 分类:Python开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章