面试题10:斐波那契数列

题目描述:

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

解题思路:

  1. 斐波那契数列定义如下:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
    1.根据定义,最先想到的是递归的解法,但是当n较大时,递归的效率会很低;是随着n呈指数增长的。
  2. 可以将已得到的中间项保留,所以最直观的方法就是从下往上计算。时间复杂度O(n)。b表示后面的一个数字,a表示前面的数字即可。每次进行的变换是:temp = a,a=b,b=temp + b
# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        # 斐波那契数列定义F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
        if n<=0:
            return 0
        else:
            a = 1
            b = 1
            while n > 2:
                temp = a 
                a = b 
                b = temp + b
                n = n - 1
            return b
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-code.h...
    eddy_wiki阅读 9,431评论 0 30
  • 题目要求 求斐波那契数列的第n项。 题目解析 思路一: 分析 斐波那契数列的第n项的计算过程是一个标准的递归 。 ...
    小庄bb阅读 478评论 0 0
  • 题目:斐波那契数列 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<...
    后浪普拉斯阅读 410评论 0 0
  • 昨天是党的生日,香港回归二十周年的日子,同样也是我的农历生日,六月初八,二十年前的今天我出生了,从来也没有想到过,...
    坚志阅读 209评论 0 0
  • 昔阳无限好,只是近黄昏。青春也是一样,仿佛一下子就烟消云散,想挽留却怎么也留不住。 青春它是无情的,是残酷的,但,...
    季胜海阅读 793评论 0 1

友情链接更多精彩内容