题目描述

  • 现在要求输入一个整数n
  • 输出斐波那契数列的第n项(从0开始,第0项为0)。
    n<=39

理解

  • 斐波那契数列
    因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

解题思路

解法1
按照斐波纳契数列的定义写递归程序

class Solution:def Fibonacci(self, n):if n<=0:return 0elif n == 1 or n == 2:return 1else:return (self.Fibonacci(n-1)+ self.Fibonacci(n-2))

但是这样写的话,在牛客网上会运行超时且容易栈溢出

解法2
不用递归怎么写呢,其实也很简单,如下

class Solution:def Fibonacci(self, n):if n<=0:return 0if n==1:return 1else:a,b=0,1 for i in range(n-1):a,b=b,a+breturn b

或者用列表实现

class Solution:def Fibonacci(self, n):a = [0,1]if n<=1:return a[n]else:for i in range(2,n+1):a.append(a[i-1]+a[i-2])return a[n]

剑指offer_第7题_斐波那契数列相关推荐

  1. 《剑指offer》c++版本 10. 斐波那契数列

    如题: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). 这道题基本上学过算法的人都直到,斐波那契数列即,即1,1,2,3,5....... 用数 ...

  2. 剑指offer:面试题10- I. 斐波那契数列

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...

  3. 剑指offer——面试题10:斐波那契数列

    个人答案: 1 #include"iostream" 2 #include"stdio.h" 3 #include"string.h" 4 ...

  4. python程序题斐波那契数列_Python_经典题_斐波那契数列

    古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月兔子总数是多少?(使用循环实现) 分析: 第一个月是1对 第二个月还是1对 第三个月是2对(因为第 ...

  5. [剑指offer]面试题9:斐波那契数列

    面试题9:斐波那契数列 题目一:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: ❖ 效率很低的解法,挑剔的面试官不会喜欢 代码如下: long long f ...

  6. 【博客搬家旧文】剑指offer [ java ] 面试题10 斐波那契数列

    契波那契数列最常见的解法,递归如下: public class Solution {public int Fibonacci(int n) {if(n == 0)return 0;else if(n ...

  7. 西电复试之——真题2013A 斐波那契数列

    西电复试之--真题2013A 斐波那契数列 F(0)=7; F(1)=11; F(n)=F(n-1)+F(n-2); #include<iostream> using namespace ...

  8. 剑指offer_第10题_矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形. 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 理解 n个2*1的小矩形 覆盖 2*n的大矩形 覆盖方式: ...

  9. 剑指offer_第8题_跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级. 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果) 理解 完全蒙啊 那我们就用特例先分析一下 如果有1级台阶,那有1种 如 ...

最新文章

  1. HDU 4286 Data Handler [栈,双端队列]
  2. 单击事件开启线程时,再次单击就会出现 java.lang.IllegalThreadStateException: Thread already started. 错误
  3. 讲解虚拟服务器的书_程序员不得不看的书
  4. PyTorch项目使用TensorboardX进行训练可视化
  5. 你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了
  6. android task详解,Android AsyncTask的使用详解
  7. linux下qt制作日历,课内资源
  8. oss批量上传工具_OssExplorer一OSS的专用客户端工具【最新版】_Windows_Windows server 2008-云市场-阿里云...
  9. 学习SQL:INFORMATION_SCHEMA数据库
  10. 汇编语言 王爽 第四版 实验3
  11. 黑苹果怎么进recovery_黑苹果怎么自定义Clover GUI启动选项 黑苹果修复Clover GUI启动选项教程...
  12. 服务器怎么修改远程桌面端口号,windows系统如何修改默认的远程桌面端口 如何更改服务器远程端口...
  13. ppt复制切片器_零基础小白自学PPT快速入门到精通(上)
  14. 基于RSSI及KNN算法的WiFi室内定位实现
  15. matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
  16. 列宽一字符等于多少厘米_Excel中行高多少等于1厘米?列宽多少等...
  17. 如何提高技术团队的工作效率
  18. 电池SOC仿真系列-基于Simscape搭建的锂电池模型
  19. VOIP技术连载之二--VOIP呼叫流程
  20. 区块链+金融潜力有多大?透视这30家金融机构的布局!

热门文章

  1. c# Pdf 转换图片
  2. 用JSP+JDBC开发Web程序
  3. 页面的前进/后退/刷新方法
  4. 【组队学习】【31期】动手学数据分析
  5. Matlab与随机变量和样本的数字特征
  6. Roberts 边缘检测
  7. Python 快速生成 web 动态展示机器学习项目!
  8. 中国国际消费电子博览会拥抱转型,全新面貌拭目以待!
  9. Python 搭建车道智能检测系统
  10. 用数据分析《你好,李焕英》“斐妈”爆红的真相