python 打印斐波那契数列-使用递归函数版本 - Go语言中文社区

python 打印斐波那契数列-使用递归函数版本


使用python打印出斐波那契数列的过程中需要特别注意的是数列中的值有前两项相加而来,所以需要两项同时赋值,不能分开赋值,分开赋值会导致数列变为等比数列

#!/usr/bin/python
#-*- coding:UTF-8 -*-
def fib(n):
  a=0
  b=1
  for i in range(n-1):
    a,b=b,a+b
  return a
print  fib(int(raw_input("数列中位置")))

或者使用递归函数,因为我又在环境中装了个python3所以递归函数使用python3的语法编写,跟上边的函数格式上有点不一样,请注意

#/usr/bin/python3
#-*- conding:UTF-8 -*-
def fin(n):
  if n==1 or n==2:
    return 1
  else:
    return fin(n-1) + fin(n-2) 
print (fin(int(input("请输入要计算的项:"))))

实测是正确的,但是使用递归的话会造成极大的资源消耗,计算前10项很快,计算第30项结果时耗时大约有1秒。计算第50项的结果耗时已经超过5分钟。附一张资源消耗情况截图(红框中是递归函数的进程,消耗很惊人了,谨记谨慎使用递归):
这里写图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/shishui07/article/details/79161445
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 21:19:10
  • 阅读 ( 1053 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢